import java.util.*;public class EnhancedFor {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
for(int i : arr) {
System.out.println(i);
}

Collection c = new ArrayList();
c.add(new String("aaa"));
c.add(new String("bbb"));
c.add(new String("ccc"));
for(String o : c) {
System.out.println(o);
}
}
}
这代码错在哪,各位能否详细告知怎样改以及为什么要那样改?

解决方案 »

  1.   

    ArrayList里存放的是ObjectString o:c是因为 Object不能隐式的转换为String可以使用泛型解决这个问题改成:Collection<String> c = new ArrayList<String>(); 就可以了
      

  2.   

    import java.util.*; public class EnhancedFor { 
    public static void main(String[] args) { 
    int[] arr = {1, 2, 3, 4, 5}; 
    for(int i : arr) { 
    System.out.println(i); 
    } Collection c = new ArrayList(); 
    c.add(new String("aaa")); 
    c.add(new String("bbb")); 
    c.add(new String("ccc")); 
    for(Object o : c) { 
    System.out.println(o); 


      

  3.   

    顶2楼,泛型有利于代码的安全。否则如果出现不同类型的对象加入到ArrayList中,取出来的时候容易出现转换异常(ClassCastException)