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

空指针 刚学 没弄明白 求指点

空指针 刚学 没弄明白 求指点

丶丶丶柯南 2017-07-09 13:31:39
错误package imooc.collection_map_demo; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class SetTest{ public List<Course>coursesToSelect;   public SetTest(){ coursesToSelect = new ArrayList<Course>();} public void testAdd() { //创建一个课程对象,并通过调用add方法,添加到备选课程List中 Course cr1 = new Course("1" , "数据结构"); coursesToSelect.add(cr1); Course temp = (Course) coursesToSelect.get(0); System.out.println("添加了课程:" + temp.id + ":" + temp.name);  Course cr2 = new Course("2", "C语言"); coursesToSelect.add(0, cr2); Course temp2 = (Course) coursesToSelect.get(0); System.out.println("添加了课程:" + temp2.id + ":" + temp2.name); coursesToSelect.add(cr1); Course temp0 = (Course) coursesToSelect.get(2); System.out.println("添加了课程:" + temp.id + ":" + temp.name);  //以下方法会抛出数组下标越界异常 // Course cr3 = new Course("3", "test"); // coursesToSelect.add(4, cr3); Course[] course = {new Course("3", "离散数学"), new Course("4", "汇编语言")}; coursesToSelect.addAll(Arrays.asList(course)); Course temp3 = (Course) coursesToSelect.get(2); Course temp4 = (Course) coursesToSelect.get(3); System.out.println("添加了两门课程:" + temp3.id + ":" +  temp3.name + ";" + temp4.id + ":" + temp4.name); Course[] course2 = {new Course("5", "高等数学"), new Course("6", "大学英语")}; coursesToSelect.addAll(2, Arrays.asList(course2)); Course temp5 = (Course) coursesToSelect.get(2); Course temp6 = (Course) coursesToSelect.get(3); System.out.println("添加了两门课程:" + temp5.id + ":" +  temp5.name + ";" + temp6.id + ":" + temp6.name); } public void testForEach() { System.out.println("有如下课程待选(通过for each访问):"); for (Object obj : coursesToSelect) { Course cr = (Course) obj; System.out.println("课程:" + cr.id + ":" + cr.name); } }       public static void main(String[] args) { SetTest st =new SetTest(); st.testAdd(); st.testForEach(); //创建一个学生对象 Student student = new Student("1","小明"); System.out.println("欢迎学生"+student.name+"选课!"); //创建一个Scanner对象 接收输入ID Scanner console = new Scanner(System.in);   for(int i =0 ;i<0;i++){ System.out.println("请输入课程ID"); String courseID = console.next();   for (Course cr:st.coursesToSelect){ if(cr.id.equals(courseID)){ student.courses.add(cr); } } } st.testForEachForSet(student); }  public void testForEachForSet(Student student){ //打印输出 学生所选课程 for(Course cr : student.courses){ System.out.println("选择了课程:"+cr.id+":"+cr.name); } } }Exception in thread "main" java.lang.NullPointerException at imooc.collection_map_demo.SetTest.testForEachForSet(SetTest.java:93) at imooc.collection_map_demo.SetTest.main(SetTest.java:89)
查看完整描述

1 回答

已采纳
?
qq_莫非

TA贡献257条经验 获得超92个赞

空指针异常一般都是数据没有传进去,定义的变量没有取到确定的值。。

查看完整回答
反对 回复 2017-07-09
  • 1 回答
  • 0 关注
  • 997 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信