java对list的泛型,非严格检查

public class Student {
String name;
String age;

}

public class sheep {
int num;
int year;
int sex;
long sell;
}

public class Doctor {
String name;
String age;
String sex;
String salary;
}
	 * @param args
*/
public static void main(String[] args) {

Student s=new Student();
//类型固定的不能转,转自动报错
//(Doctor)s
s.name="zhangs";
s.age="20";
//在list里边,则不会报错
List l=new LinkedList();
l.add(s);
List<Doctor> l2=(List<Doctor>)l;
List<sheep> l3=(List<sheep>)l;
System.out.println(l2.get(0));
System.out.println(l3.get(0));

//如果定义list时用了泛型,则报不能转换
List<Student> list=new LinkedList();
list.add(s);
List<Doctor> list2=(List<Doctor>)list;
}
l2,l3中仍然是student对象。

当然,如果list写成某个对象的泛型,一定会检查。
List<T> 表示 集合里 是 T类的实例
List<E> 表示 集合里 是 E类的实例
List<?> 表示 集合里的对象类型不确定,未指定
List 同 List<?>
泛型的作用:
1::: List<T> list=new ArrayList<T>();
T t=list.get(0);
2:::List list=new ArrayList();
T t=(T)list.get(0);
相信你已经看出:用泛型只是确定了集合内的元素的类型,取出来时已经不再需要强转
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值