為什么編譯出錯(cuò)?。窟@是什么錯(cuò)誤???
package gg;
public class Course {
public String id;
public String name;
public Course(String id,String name)
{
this.id=id;
this.name=name;
}
}
package gg;
import java.util.HashSet;
import java.util.Set;
public class Student {
public String id;
public String name;
public Set courses;
public void Student(String id,String name)
{
this.id=id;
this.name=name;
this.courses=new HashSet();
}
}
package gg;
import java.util.ArrayList;
import java.util.List;
public class ListTest {
public List coursestoselect;
public void Listest()
{
this.coursestoselect=new ArrayList();
}
public void testAdd()
{
Course c1=new Course("1", "數(shù)學(xué)");
coursestoselect.add(c1);
Course temp=(Course)coursestoselect.get(0);
System.out.println("添加課程:"+temp.id+","+temp.name);
}
public static void main(String[] args) {
ListTest lt=new ListTest();
lt.testAdd();
}
}
為什么編譯出錯(cuò)啊?
Exception in thread "main" java.lang.NullPointerException
at gg.ListTest.testAdd(ListTest.java:16)
at gg.ListTest.main(ListTest.java:24)
這是什么錯(cuò)誤?。?/p>
2017-02-26
原因是你沒有實(shí)例化List對象coursestoselect?。。∧惆褜?shí)例化放入方法ListTest()里面,而在main方法中你沒有調(diào)用它(ListTest()方法)
2017-02-27
public void Listest(){
this.coursestoselect=new ArrayList();
}
這句錯(cuò)了,應(yīng)改為:
public ListTest(){
this.coursestoselect=new ArrayList():
}
2017-02-26
public class ListTest {
public List coursestoselect;這句錯(cuò)了,由于是不同類型的所以要進(jìn)行強(qiáng)制轉(zhuǎn)換
改變后public List<Course>coursesToSelect;
在下面的也是如此this.coursestoselect=new ArrayList();改變后this.coursestoselect=new ArrayList<Course>();
2017-02-26
你的public ListTest()構(gòu)造函數(shù)多了個(gè)void,將void去掉就可以了