泛型方法用于消除重载方法

时间:2015-07-06 18:56:22

标签: java

我读了一些关于泛型方法的内容,我发现它用于消除重载方法。

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();
}

这两种方式有什么不同......?

1 个答案:

答案 0 :(得分:6)

对于您提到的特定用例,没有区别,因为所有对象都有toString()方法。如果您想要返回TT[],或者您需要T来实现某些通用接口等,那么您需要一个通用方法。 (也就是说,泛型往往更多地使用集合而不是数组。)