package genericMethods;
public class OverloadedMethods {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer[] integerArray = {1, 2, 3, 4, 5};
Double[] doubleArray = {1.0, 2.0, 3.0, 4.0, 5.0};
Character[] charArray = {'a', 'b', 'c', 'd'};
System.out.println("A has: ");
printArray(integerArray);
System.out.println("B has: ");
printArray(doubleArray);
System.out.println("C has: ");
printArray(charArray);
}
public static <T> void printArray(T[] array)
{
for(T element : array)
System.out.printf("%s ", element);//why use %s instead of others?
System.out.println();
}
}
我的問題是方法printArray()不知道要打印出什麼類型的數據,並且似乎%d在運行時會發生錯誤 - 但不是%s僅適用於String?爲什麼使用printf(「%s」)傳遞給泛型方法的參數?
請參考http://docs.oracle.com/javase/6/docs/api/java/util/Formatter.html。順便說一句,您將'element'打印爲'String'。 – 2013-03-02 19:36:42
因爲你有一個字符串表示任何東西,一個浮點數,一個整數,一個字節,一個字符,而其他類型只能表示自己。 – 2013-03-02 19:38:13