package i.mooc.collect;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
//泛型集合中,不能添加泛型规定的类型及其子类型以为的集合,否则会报错
//泛型集合中限定的类型不能使用基本类型的
//可以通过使用包装类限定允许存入的基本数据类型
public class TestGeneric {
//泛型用尖括号,括号里面写入需要存放在list中元素
public List<Course> course;//申明
public TestGeneric(){//构造器,在构造器中初始化course属性
this.course=new ArrayList<Course>();//实例化时也要加泛型类型。
}
public void testAdd(){
Course cr=new Course("1","语文");
course.add(cr);
Course cr1=new Course("2","数学");
course.add(cr1);
}
public void testAdd1(){
Course []cr3={new Course("3","java"),new Course("4","数据库")};
course.addAll(Arrays.asList(cr3));//此处是Arrays.asList方法,不是Array的方法
}
public void testForEach(){
for(Course ce:course);
Course temp=course.get(0);
Course temp1=course.get(1);
System.out.println(temp.id+temp.name+temp1.id+temp1.name);
}
//泛型集合可以添加泛型子类型的对象实例
public void testChild(){
courseChild ccr=new courseChild();
ccr.id="3";
ccr.name="子类型的对象实例";
course.add(ccr);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
TestGeneric tg=new TestGeneric();
tg.testAdd();
tg.testAdd1();
tg.testForEach();
tg.testChild();
tg.testForEach();
}
}
public void testForeache(){
for(Course cr : course)
System.out.println(cr);
}
这样就行了,因为你已经定义了泛型,所以在foreach语句中,不用进行类型转换,直接就可以输出结果,而且你的foreach语句写的也不对哦,要认真听老师讲哦
你看一下你的testForeach()方法就知道了!
找你的复制了一下,可以打印出结果:
结果为:
1语文2数学
1语文2数学