请问这段代码哪里出错了啊?

package com.imooc;

import java.util.ArrayList;
import java.util.List;

public class TestGeneric {
	public List<Course> courses;
	public void TestGeneric(){
		this.courses=new ArrayList<Course>();
	}
	public void testAdd(){
		Course cr=new Course("1","English");
		courses.add(cr);
		Course cr1=new Course("2","Chinese");
		courses.add(cr1);
	}
	/**
	 * 
	 */
	public void testForEach(){
		for(Course cr:courses){
			System.out.println("课程:"+cr.id+":"+cr.name);
		}
	}
	public static void main(String[] args) {
		TestGeneric te=new TestGeneric();
		te.testAdd();
		te.testForEach();
	}

}


报错提示:Exception in thread "main" java.lang.NullPointerException
	at com.imooc.TestGeneric.testAdd(TestGeneric.java:13)
	at com.imooc.TestGeneric.main(TestGeneric.java:27)


leeu
浏览 1158回答 2
2回答

冰山点水

没有初始化成员变量courses,变量类型是LIST集合,在没有初始化courses之前就访问其add方法肯定空报指针异常!原因是你的构造器代码写错了,在main方法中创建对象TestGeneric时,并没有初始化courses。构造器是没有返回值类型的的,去掉 public void TestGeneric(){} 这段代码里面的void即可。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java