2014-10-20 85 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

相關問題