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

代码出错了,调试不通了啊,囧。提示:java.lang.NullPointerException,空指针异常!

代码如下:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class SetTest {

	public static List<Course> listCourse ;
	
	public SetTest(){
		listCourse =  new ArrayList<Course>();
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SetTest ST = new SetTest();
//		ST.AddDatelist();
		
//		ST.ShowList();
		ST.AddStudentCourse();
//		Student student = new Student();
		/*
		Student student = new Student();
		SetTest STest = new SetTest();
		student.name = "小北";
		student.number = 942;
		System.out.println("***欢迎"+student.name+"同学来到选课系统");
		System.out.println("**可选择的书如下所示:");
		STest.AddDatelist();
		STest.ShowList();  //显示书单信息
//		System.out.println("");
		System.out.println("**你需要选择四门课,请输入课程号选择课程:");
		Scanner inputnumber = new Scanner(System.in); 
		int number;
		for(int i=0;i<4;++i){
			number= inputnumber.nextInt();
//			for(int j=0;j<listCourse.size();j++){
			for(Course temp : listCourse){  //判断所选序号是不是在书单里面
				if(number==temp.id){
					student.SelectCourse.add(temp);
					break;
				}
			}
		}
		
		System.out.println("**你选择的书单为:");
		System.out.println(student.SelectCourse.size());
//		Course stu = new Course(1,"");
		for( Course stu : student.SelectCourse){
			System.out.println(stu.id+":"+stu.name);
		}
		*/
	}
		
		
		
	
/**
 * 函数AddDateList的作用是往list数组Course中添加课程信息
 * 
 */
	public void AddDatelist(){
		Course cr = new Course(1,"语文");
		listCourse.add(cr);
		Course cr2 = new Course(2,"数学");
		listCourse.add(0,cr2);
		Course[] crs = {new Course(3,"英语"),new Course(4,"历史"),new Course(5,"政治")};
		listCourse.addAll(Arrays.asList(crs));
		
	}

	
/**
 * 	函数ShowList的作业是显示课程数组Course的信息
 */
	public void ShowList(){
//		for(Course temp : listCourse){    //可能的出错点
		for(Object temp1 : listCourse){
			Course temp = (Course)temp1;
			System.out.println(temp.id+":"+temp.name);
		}
	}
	
/**
 * 	AddStudentCourse是为学生类添加课程信息
 */
	public void AddStudentCourse(){
		Student student = new Student();
		SetTest STest = new SetTest();
		student.name = "小明";
		student.number = 942;
		System.out.println("***欢迎"+student.name+"同学来到选课系统");
		System.out.println("**可选择的书如下所示:");
		STest.AddDatelist();
		STest.ShowList();  //显示书单信息
//		System.out.println("");
		System.out.println("**你需要选择四门课");
		Scanner inputnumber = new Scanner(System.in); 
		int number;
		for(int i=0;i<4;++i){
			System.out.println("**请输入课程号:");
			number= inputnumber.nextInt();
			for(int j=0;j<listCourse.size();j++){  //###错误代价//就在这附近
			for(Course temp : listCourse){  //判断所选序号是不是在书单里面
				if(number==temp.id){
					student.SelectCourse.add(temp);
					break;
				}
			}
		}
		
		System.out.println("**你选择的书单为:");
		System.out.println(student.SelectCourse.size());
//		Course stu = new Course(1,"");
		for( Course stu : student.SelectCourse){
			System.out.println(stu.id+":"+stu.name);
		}
		
	}
	
}

哎  今天这个bug是找不出来了,以后再说吧。。。。。

正在回答

2 回答

package imooc_collection;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
 
public class SetTest {
 
    public List<Course> listCourse ;
     
    public SetTest(){
        listCourse =  new ArrayList<Course>();
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        SetTest ST = new SetTest();
        ST.AddDatelist();
        ST.ShowList();
        ST.AddStudentCourse();
//      Student student = new Student();
        /*
        Student student = new Student();
        SetTest STest = new SetTest();
        student.name = "小北";
        student.number = 942;
        System.out.println("***欢迎"+student.name+"同学来到选课系统");
        System.out.println("**可选择的书如下所示:");
        STest.AddDatelist();
        STest.ShowList();  //显示书单信息
//      System.out.println("");
        System.out.println("**你需要选择四门课,请输入课程号选择课程:");
        Scanner inputnumber = new Scanner(System.in); 
        int number;
        for(int i=0;i<4;++i){
            number= inputnumber.nextInt();
//          for(int j=0;j<listCourse.size();j++){
            for(Course temp : listCourse){  //判断所选序号是不是在书单里面
                if(number==temp.id){
                    student.SelectCourse.add(temp);
                    break;
                }
            }
        }
         
        System.out.println("**你选择的书单为:");
        System.out.println(student.SelectCourse.size());
//      Course stu = new Course(1,"");
        for( Course stu : student.SelectCourse){
            System.out.println(stu.id+":"+stu.name);
        }
        */
    }
         
         
         
     
/**
 * 函数AddDateList的作用是往list数组Course中添加课程信息
 * 
 */
    public void AddDatelist(){
        Course cr = new Course("1","语文");
        listCourse.add(cr);
        Course cr2 = new Course("2","数学");
        listCourse.add(0,cr2);
        Course[] crs = {new Course("3","英语"),new Course("4","历史"),new Course("5","政治")};
        listCourse.addAll(Arrays.asList(crs));
         
    }
 
     
/**
 *    函数ShowList的作业是显示课程数组Course的信息
 */
    public void ShowList(){
//      for(Course temp : listCourse){    //可能的出错点
        for(Course temp : listCourse){
           
            System.out.println(temp.id+":"+temp.name);
        }
    }
     
/**
 *    AddStudentCourse是为学生类添加课程信息
 */
    public void AddStudentCourse(){
    	Student student = new Student("1","小明");
    //    SetTest STest = new SetTest();

        System.out.println("***欢迎"+student.name+"同学来到选课系统");
        System.out.println("**可选择的书如下所示:");
       // STest.AddDatelist();
       // STest.ShowList();  //显示书单信息
//      System.out.println("");
        System.out.println("**你需要选择四门课");
        Scanner inputnumber = new Scanner(System.in); 
        String number;
        for(int i=0;i<4;++i){
            System.out.println("**请输入课程号:");
            number= inputnumber.next();
            //for(int j=0;j<listCourse.size();j++){  //###错误代价//就在这附近
            for(Course temp : listCourse){  //判断所选序号是不是在书单里面
                if(temp.id.equals(number)){
                    student.courses.add(temp);
                    
                }
            }
       // }
         
        
         
    }
        System.out.println("**你选择的书单为:");
        //System.out.println(student.courses.size());
        for( Course temp1 : student.courses){
            System.out.println(temp1.id+":"+temp1.name);
        }
    }    
     
}


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

package imooc_collection;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

import java.util.Scanner;

 

public class SetTest {

 

    public List<Course> listCourse ;

     

    public SetTest(){

        listCourse =  new ArrayList<Course>();

    }

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        SetTest ST = new SetTest();

        ST.AddDatelist();

        ST.ShowList();

        ST.AddStudentCourse();

//      Student student = new Student();

        /*

        Student student = new Student();

        SetTest STest = new SetTest();

        student.name = "小北";

        student.number = 942;

        System.out.println("***欢迎"+student.name+"同学来到选课系统");

        System.out.println("**可选择的书如下所示:");

        STest.AddDatelist();

        STest.ShowList();  //显示书单信息

//      System.out.println("");

        System.out.println("**你需要选择四门课,请输入课程号选择课程:");

        Scanner inputnumber = new Scanner(System.in); 

        int number;

        for(int i=0;i<4;++i){

            number= inputnumber.nextInt();

//          for(int j=0;j<listCourse.size();j++){

            for(Course temp : listCourse){  //判断所选序号是不是在书单里面

                if(number==temp.id){

                    student.SelectCourse.add(temp);

                    break;

                }

            }

        }

         

        System.out.println("**你选择的书单为:");

        System.out.println(student.SelectCourse.size());

//      Course stu = new Course(1,"");

        for( Course stu : student.SelectCourse){

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

        }

        */

    }

         

         

         

     

/**

 * 函数AddDateList的作用是往list数组Course中添加课程信息

 * 

 */

    public void AddDatelist(){

        Course cr = new Course("1","语文");

        listCourse.add(cr);

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

        listCourse.add(0,cr2);

        Course[] crs = {new Course("3","英语"),new Course("4","历史"),new Course("5","政治")};

        listCourse.addAll(Arrays.asList(crs));

         

    }

 

     

/**

 *    函数ShowList的作业是显示课程数组Course的信息

 */

    public void ShowList(){

//      for(Course temp : listCourse){    //可能的出错点

        for(Course temp : listCourse){

           

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

        }

    }

     

/**

 *    AddStudentCourse是为学生类添加课程信息

 */

    public void AddStudentCourse(){

    Student student = new Student("1","小明");

    //    SetTest STest = new SetTest();


        System.out.println("***欢迎"+student.name+"同学来到选课系统");

        System.out.println("**可选择的书如下所示:");

       // STest.AddDatelist();

       // STest.ShowList();  //显示书单信息

//      System.out.println("");

        System.out.println("**你需要选择四门课");

        Scanner inputnumber = new Scanner(System.in); 

        String number;

        for(int i=0;i<4;++i){

            System.out.println("**请输入课程号:");

            number= inputnumber.next();

            //for(int j=0;j<listCourse.size();j++){  //###错误代价//就在这附近

            for(Course temp : listCourse){  //判断所选序号是不是在书单里面

                if(temp.id.equals(number)){

                    student.courses.add(temp);

                    

                }

            }

       // }

         

        

         

    }

        System.out.println("**你选择的书单为:");

        //System.out.println(student.courses.size());

        for( Course temp1 : student.courses){

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

        }

    }    

     

}


将你的代码改了下,可以出来结果呢,你参考下。

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

举报

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

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

进入课程

代码出错了,调试不通了啊,囧。提示:java.lang.NullPointerException,空指针异常!

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号