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);
相信你已经看出:用泛型只是确定了集合内的元素的类型,取出来时已经不再需要强转