小编Vis*_*hal的帖子

将原始类型的 Collection 对象传递给接受 Generic 参数的方法时,Generic Iterator<E> 的行为有所不同

  • 当 m1() 被调用时,输出会打印 arraylist 的所有元素。
  • 当 m2() 被调用时 get ClassCastException 说:线程“main”中的异常 java.lang.ClassCastException: test.Employee cannot be cast to java.lang.String。
  public class Stage2Clone {
          public static void main(String[] args) {
              ArrayList stringList = new ArrayList();
              stringList.add(new Employee(1,"A"));
              stringList.add(new Employee(2,"j"));
              stringList.add(new Employee(3,"d"));
              stringList.add("Hello");
              stringList.add(new String("Abc"));
              stringList.add(10);
              stringList.add(new Integer(100));

              System.out.println(stringList);

             m1(stringList);
             m2(stringList);

          }

          public static void m1(ArrayList<Employee> al){
              Iterator<Employee> iterator = al.iterator();
              while(iterator.hasNext()){
                  System.out.println(iterator.next());
              }
          }

          public static void m2(ArrayList<String> al){
              Iterator<String> iterator = al.iterator();
              while(iterator.hasNext()){
                  System.out.println(iterator.next());
              }
          }
      }

Run Code Online (Sandbox Code Playgroud)

java generics

3
推荐指数
1
解决办法
94
查看次数

标签 统计

generics ×1

java ×1