public class Generic { public static void main(String[] args) { // 原生态类型 List list = new ArrayList<>(); list.add(1); list.add(2L); System.out.println(list.get(0)); // System.out.println((Integer) list.get(1)); // Exception in thread "main" java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer // at com.atguigu.springbootbase.effective.E01.main(E01.java:22) // 添加泛型 List<Integer> list2 = new ArrayList<>(); /* list2.add(1); // Required type:Integer Provided:long list2.add(2L);*/ // 参数传递的时候把泛型去掉了 odd(list2, 1); oddNew(list2, 3); odd(list2, 2L); // oddNew(list2, 2L); // 提前报错,提前处理 oddNew(list2, 4); // 提前报错,提前处理 System.out.println(list2); // Exception in thread "main" java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer // at com.atguigu.springbootbase.effective.E01.main(E01.java:37) // System.out.println((Integer) list2.get(1)); System.out.println((Integer) list2.get(3)); } // 参数传递的时候把泛型去掉了 public static void odd(List list, Object o) { list.add(o); } // 参数传递的时候把泛型加上 public static void oddNew(List<Integer> list, Integer o) { list.add(o); } }