问答详情
源自:4-10 学生选课---应用泛型管理课程 Ⅱ

为何我的testAdd1()和testChild()方法不能打印出东西呢

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();


}


}


提问者:慕姐4465932 2018-08-23 21:28

个回答

  • 五岁麻瓜少年
    2018-11-15 20:44:07

    public void testForeache(){

    for(Course cr : course)

    System.out.println(cr);

    }

    这样就行了,因为你已经定义了泛型,所以在foreach语句中,不用进行类型转换,直接就可以输出结果,而且你的foreach语句写的也不对哦,要认真听老师讲哦

  • 不喜欢吃辣的程序员
    2018-08-26 23:13:51

    你看一下你的testForeach()方法就知道了!

  • 想来想去也不知道要起什么
    2018-08-24 15:48:09

    找你的复制了一下,可以打印出结果:

    结果为:

    1语文2数学
    1语文2数学