我读了一些关于泛型方法的内容,我发现它是用来消除重载方法的。
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();
}
这两种方式有什么区别...?
最佳答案
对于您提到的特定用例,没有区别,因为所有对象都有一个 toString()
方法。如果您想返回 T
或 T[]
,或者需要 T
来实现某些通用接口(interface)等,那么您可以需要一个通用方法。 (也就是说,泛型往往更多地用于集合而不是数组。)
关于java - 泛型方法用于消除重载方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31253497/