- public class Test2 {
- public static <T> void show(Set<T> a, Set<T> b){
- System.out.println(b.getClass().getName());
- }
- public static void main(String[] args) {
- Set<String> a = new HashSet<String>();
- Set<Integer> b = new HashSet<Integer>();
- /*String a = new String("asda");
- Integer b = new Integer(12); */
- Test2.show(a, b);
- }
- }
- 上面是你的代码:
- 我的理解是静态方法的泛型声明为<T>,静态show()方法的参数列表的泛型也是<T>,正常逻辑是传入的两个Set集合的参数化类型是可以不同的(只是都叫T而已),
- 但是静态方法的泛型声明会让编译器认为你传入的是集合参数化类型是同一中类型!,所以会报错!
- 上面纯属个人理解:多指教
|