为了账号安全,请及时绑定邮箱和手机立即绑定

泛型实践时出错!哪里不对?

package collection;


import java.util.ArrayList;

import java.util.List;


public class testGeneric {

//带有泛型——Course 的List类型 属性

public List<Course>  courses;

public void TestGeneric(){

this.courses=new ArrayList<Course>();

}

public void testAdd(){

Course cr1=new Course("1","数据结构");

courses.add(cr1);

Course  cr2=new Course("2","高等数学");

courses.add(cr2);

//泛类型的集合中不能添加泛类型规定之外的对象,否则会报错

//courses.add("我是字符串")

//Course  cr2=new Course("2","JAVA基础");

//courses.add(cr2);

}

/*

* 测试循环遍历的方法

*/

public void testForEach(){

for(Course c:courses){

System.out.println(c.id+":"+c.name);

}

}

/**

* 泛型集合可以添加泛型的子类型的对象实例

* @param args

*/


public void testChild(){

ChildCourse ccr=new ChildCourse();

ccr.id="3";  ccr.name="我是子类型的课程对象实例";

courses.add(ccr);

}

public static void main(String[] args) {

// TODO Auto-generated method stub

       testGeneric tg=new testGeneric();

       tg.testAdd();

       tg.testForEach();

       tg.testChild();

}


}

运行时报错:

Exception in thread "main" java.lang.NullPointerException

at collection.testGeneric.testAdd(testGeneric.java:16)

at collection.testGeneric.main(testGeneric.java:48)


正在回答

3 回答

public void TestGeneric(){

this.courses=new ArrayList<Course>();

}

把这段代码的void去掉。里面this.courses=new ArrayList<Course>();的初始化是要写在构造方法内。

Exception in thread "main" java.lang.NullPointerException : 表示空指针也就是说List集合没有初始化。

0 回复 有任何疑惑可以回复我~
#1

煎饼学徒 提问者

非常感谢!明白啦!
2016-03-14 回复 有任何疑惑可以回复我~

list一定要初始化否则会报错 

0 回复 有任何疑惑可以回复我~

构造方法不能加返回值类型!

0 回复 有任何疑惑可以回复我~
#1

煎饼学徒 提问者

也非常感谢你的帮助,问题解决啦!
2016-03-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

泛型实践时出错!哪里不对?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信