java泛型中T、E、K等,有什么区别?

先说结论:

除了字母不一样之外没有任何区别

当然你可能会看到很多类似一下的说法
在这里插入图片描述
但实际上,这些说法就像定义一个Map型的变量常用 map 起名,定义数组常用 array起名一样,只是一个贴切的名字,实际上用什么都可以。

以下这几种写法全都对,都能正常运行:

 private static <T> T genericAdd(T a) {
        System.out.println(a );
        return a;
    }
 private static <E> E genericAdd(E a) {
    System.out.println(a );
        return a;
    }
 private static <ABCD > ABCD  genericAdd(ABCD a) {
       System.out.println(a );
        return a;
    }
 private static <AAAAAA> AAAAAA genericAdd(AAAAAA a) {
       System.out.println(a );
        return a;
    }