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

为什么会抛出空指针异常?

add处报错,抛出异常Exception in thread "main" java.lang.NullPointerException


代码如下:


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

}

/**

* 测试添加课程

* @param args

*/

public void testAdd() {

Course cr1 = new Course("1", "小学语文");

courses.add(cr1);

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

courses.add(cr2);

// courses.add("能否添加其他类型的内容?");

}

/**

* 测试循环遍历

* @param args

*/

public void testForEach() {

for(Course cr : courses) {

System.out.println("课程-->" + cr.getId() + ":" + cr.getName());

}

}

/**

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

* @param args

*/

public void testChild() {

ChildCourse ccr = new ChildCourse();

ccr.setId("3");

ccr.setName("我是子类型 的课程对象实例 ");

courses.add(ccr);

}

public static void main(String[] args) {

// TODO Auto-generated method stub

TestGeneric tg = new TestGeneric();

tg.testAdd();

// tg.testForEach();

// tg.testChild();

}


}


正在回答

2 回答

找到问题原因了,构造方法写错了,多了个void,而且构造器名字也写错,需要跟类名保持一致,即

public void testGeneric() {

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

}

改为

public TestGeneric() {

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

}


0 回复 有任何疑惑可以回复我~
TestGeneric tg = new TestGeneric();
tg.testGeneric();
tg.testAdd();


未初始化 public List<Course> courses;

应在添加之前调用初始化 方法

tg.testGeneric();



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

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409787    人
  • 解答问题       4340    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

为什么会抛出空指针异常?

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