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

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

这两种方式有什么区别...?

最佳答案

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

关于java - 泛型方法用于消除重载方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31253497/

相关文章:

java - 基于值的类混淆

java - 在 spring mvc 中将 jsp 转换为 servlet 以及 java web 应用程序的安装程序

Java:当您知道父类(super class)时对转换的反射(reflection)

欢笑中的 Java 堆大小错误

Java 集合接口(interface) addAll() 方法签名

java - 如何将日期写入文本文件一次?

java - 如何在 HQL 中使用 sql case 子句?

java - 在java中创建数字证书

java - 如何显示二维数组的行数和列数?

java - 如何在 Java Berkeley DB 中存储 ArrayList 字段?