list集合中,只能添加泛型指定的类与其子类。
以及不能添加基础类型,但可以添加基础类型的包装类。
public class SuperCourse extends course {//SuperCourse类为course类的子类
}
public class testGranber {
/*
* 新建一个名为course的list容器,规定只能存放course元素的集合
*/
public List <course> courses;
//编写构造方法,方法内容为,所有course对象都可以被实例化进list。
public testGranber() {
this.courses=new ArrayList<course>();
}
public void testSuper() {
SuperCourse ct=new SuperCourse();
ct.id="3";
ct.name="泛型指定类型的子类";
courses.add(ct);
}
public void testForEach() {
for(course cr:courses) {//经过泛型规定,不需要再转换类型
System.out.println("课程:"+cr.id+"."+cr.name);
}
}
/*
* 新建一个list集合,尝试将int类型设为指定添加类
*/
//List <int> int1=new ArrayList<int>(); 编译器报错,无法将int类型添加进list集合
public void tsetint() {
List <Integer> list1=new ArrayList<Integer>();//编译通过,可以将包装类指定为添加类型
list1.add(1);//参数转入之前自动装箱
System.out.println("成功加入Integer类型:"+list1.get(0));
}
public static void main(String[] args) {
// TODO Auto-generated method stub
testGranber tg=new testGranber();
tg.testSuper();
tg.testForEach();
tg.testint();
}
运行结果:
课程:3.泛型指定类型的子类
成功加入Integer类型:1