我读了一些关于泛型方法的内容,我发现它用于消除重载方法。
public static void main(String[] args) {
Integer arr[] = { 12, 55, 66, 54 };
printArray(arr);
}
public static <T> void printArray(T arr[]) {
for (T a : arr) {
System.out.print(a.toString() + " ");
}
System.out.println();
}
在了解泛型方法的任何内容之前,我曾经做过如下的事情:
public static void main(String[] args) {
Integer arr[] = { 12, 55, 66, 54 };
printArray(arr);
}
public static void printArray(Object arr[]) {
for (Object a : arr) {
System.out.print(a.toString() + " ");
}
System.out.println();
}
这两种方式有什么不同......?
答案 0 :(得分:6)
对于您提到的特定用例,没有区别,因为所有对象都有toString()
方法。如果您想要返回T
或T[]
,或者您需要T
来实现某些通用接口等,那么您需要一个通用方法。 (也就是说,泛型往往更多地使用集合而不是数组。)