2014-10-20 83 views
1

当我运行我的程序,我收到以下错误:为什么我收到错误:“异常线程‘main’显示java.lang.NullPointerException”

Exception in thread "main" java.lang.NullPointerException 
    at study.calendar.HomeWorkDiary.<init>(HomeWorkDiary.java:51) 
    at study.calendar.HomeworkTeftInterFace.main(HomeworkTeftInterFace.java:18) 
Java Result: 1 
BUILD SUCCESSFUL (total time: 1 second) 

,尽管我尽了最大努力,我不能确定问题我相信这与我宣布我的计划的方式有关。

可以通过确定并提供解决方案来解决我的问题,这将非常感谢。

这里的问题是代码: 接口类:

public class HomeworkTeftInterFace { 
    public static void main(String[] args) { 
     HomeWorkDiary tefo = new HomeWorkDiary("test"); 
     String task1 = JOptionPane.showInputDialog("task"); 
     String subject1 = JOptionPane.showInputDialog("subject"); 
     double priorty1 = (Double.parseDouble(JOptionPane.showInputDialog("priorty"))); 
     int day1 = parseInt(JOptionPane.showInputDialog("due day")); 
     int month1 = parseInt(JOptionPane.showInputDialog("month")); 
     int year1 = parseInt(JOptionPane.showInputDialog("year")); 
     tefo.addTask(task1, subject1, priorty1, day1, month1, year1); 
    } 
} 

下一类:

public HomeWorkDiary(String filename) { 
//  System.out.println("test5"); 
     diary = new Homework[count + 50]; 
     count = 0; 
//  System.out.println("test6"); 
     try { 
      Scanner file = new Scanner(new File("HomeWork.txt")); 
      file.useDelimiter("#"); 
      while (file.hasNextLine()) { 
//    System.out.println("test3"); 
       String task = file.next(); 
       String subject = file.next(); 
//    System.out.println("test7"); 
       String priorty = file.next(); 
//    System.out.println("test9"); 
       String day = file.next(); 
       String month = file.next(); 
       String year = file.next(); 
//    System.out.println("test"); 
       diary[count].setTaks(task); 
       diary[count].setSubject(subject); 
       diary[count].setPrioity(Double.parseDouble(priorty)); 
       diary[count].setDay(parseInt(day)); 
       diary[count].setmonth(parseInt(month)); 
       diary[count].setyear(parseInt(year)); 
//    System.out.println("test 10"); 
       count++; 
       file.nextLine(); 
      } 
     } catch (FileNotFoundException f) { 

     } 
     System.out.println("test4"); 
    } 

    public void addTask(String task1, String subject1, double priorty1, int day1, int month1, int year1) { 
     diary[count].setTaks(task1); 
     diary[count].setSubject(subject1); 
     diary[count].setPrioity(priorty1); 
     diary[count].setDay(day1); 
     diary[count].setmonth(month1); 
     diary[count].setyear(year1); 
     count++; 
    } 

和最终阵列类和相关方法:

public class Homework { 

    private String subject; 
    private String task; 
    private double priorty; 
    private int year; 
    private int month; 
    private int day; 

    Homework(String task, String subject, double priorty, int year, int month, int day) { 
     this.task = task; 
     this.subject = subject; 
     this.priorty = priorty; 
     this.year = year; 
     this.month = month; 
     this.day = day; 
    } 

    public void setTaks(String task1) { 
       System.out.println(task1); 
     task = task1; 
    } 

    public void setSubject(String subject1) { 
     System.out.println("test"); 
     subject = subject1; 
    } 

    public void setPrioity(double priorty1) { 
     priorty = priorty1; 
    } 

    public void setDay(int day1) { 
     day = day1; 
    } 

    public void setyear(int year1) { 
     year = year1; 
    } 

    public void setmonth(int month1) { 
     month = month1; 
    } 

这些条的代码不是完整的类,而是我掉下来的方法与m有关问题。

+0

什么是行51 HomeWorkDiary.java – 2014-10-20 10:40:47

+0

请阅读此:http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-doi-i-fix -它 – 2014-10-20 10:44:21

回答

0

你这样使用它作为diary[count]你必须在你的HomeWorkDiary构造函数首先初始化它作为diary[count]=new HomeWork();之前有空引用的HomeWork数组diary

相关问题