package cn.com.liheng.Test;
import java.util.ArrayList;
import java.util.List;
import cn.com.liheng.entity.User;
public class Test {
public static void main(String[] args) {
User a=new User("1","黑狗","白狗");
User b=new User("2","野狗","白狗");
List c=new ArrayList();
c.add(a);
c.add(b);
System.out.println("新闻标题数量"+c.size()+"条");
for (int i = 0; i < c.size(); i++) {
User n=(User) c.get(i);
System.out.println((i+1)+":"+n.getName());
}
}
} 为什么get()方法要进行强转了?
确实,是由于楼主你没有指定List内元素的类型,所以在get的时候默认是按Object来看的。如果在声明List时指定了泛型,之后就可以使用for-each的方式遍历,比如
[quote]
for (int i = 0; i < c.size(); i++) {
User n=(User) c.get(i);
System.out.println((i+1)+":"+n.getName());
}
[/quote]
可以改成
[code="java"]
List users = new ArrayList();
for (User u : users) {
System.out.println(u.getName());
}
[/code]
List c=new ArrayList();
改成这样就不需要强制转换了,使用java泛型
1:因为你的c是这样定义的List c=new ArrayList();这里你并没有指定集合里装的是什么类型,所以当把对象放进去后,都会被转成默认的Object类型:
2:所以你get获得的类型是Object,那么要想获得一个User类型就需要强制转换
3:如果这个list里面装的都是User的话你可以这样解决
List c=new ArrayList();