【发布时间】:2013-03-02 19:35:50
【问题描述】:
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 吗?
【问题讨论】:
-
请参考docs.oracle.com/javase/6/docs/api/java/util/Formatter.html。顺便说一句,您将
element打印为String。 -
因为你有一个String代表任何东西,一个浮点数,一个整数,一个字节,一个字符,而其他类型只能代表自己。