2013-08-22 104 views
1

我已經搜索並找到了一些似乎沒有幫助的響應,並且出現nullPointerException錯誤。下面是我的代碼錯誤是在我的logResponse()方法,任何幫助非常感謝。線程「main」中的logResponse異常java.lang.NullPointerException

import java.util.*; 

public class Survey21 { 

    private Scanner in = new Scanner(System.in); 
    private String surveyTitle; 
    private static int rID; 
    private static int respondentID; 
    private int[][] responses; 

    //Constructors 
    // Default Constructor 
    Survey21() { 
     surveyTitle = "Customer Survey"; 
    } 

    // Overloaded Constructor 1 
    Survey21(String title, int rID) { 
     surveyTitle = title; 
     rID = 0; 
     generateRespondentId(); 
    } 

    Survey21(int[][] surveyArray) { 
     responses = surveyArray; // store responses 
    } 

    public static int getrID() { 
     return rID; 
    } 

    public static void setRespondentID(int respondentID) { 
     respondentID = rID; 

    } 

    public String getTitle() { 
     return surveyTitle; 
    } 

    public void setTitle(String title) { 
     surveyTitle = title; 
    } 

    public static int generateRespondentId() { 
     rID = ++respondentID; 
     return rID; 
    } 

    // displays name of survey and entire grid of results 
    public void displaySurveyResults() { 
     System.out.printf("%s\n\n", getTitle()); 
     logResponse(); 


    } 

    // dispalys question number and results for that question so far 
    public void displayQuestionStats(int questionNumber) { 
    } 

    // enter questions and store in an array of Strings 
    public void enterQuestions() { 
     /*String[] questions = { 
     "How would you rate your online shopping experience?", 
     "How satisfied was you with the purchase price?", 
     "Overall how was the online checkout experience?", 
     "How likely are you to recommend your friends and family to our store?", 
     "How concerned are you with online credit card security?", 
     "How likely are you to prefer a retail location compared to an online store?", 
     };*/ 
     String questions[] = new String[10]; 

     for (int i = 0; i < questions.length; i++) { 
      System.out.println("Please enter a question!"); 
      questions[i] = in.nextLine(); 
     } 
     /*TEST TEST*** 
     System.out.print(questions[0] + "\n"); 
     System.out.print(questions[1] + "\n"); 
     System.out.print(questions[2] + "\n"); 
     System.out.print(questions[3] + "\n"); 
     System.out.print(questions[4] + "\n"); 
     System.out.print(questions[5] + "\n"); 
     System.out.print(questions[6] + "\n"); 
     System.out.print(questions[7] + "\n"); 
     System.out.print(questions[8] + "\n"); 
     System.out.print(questions[9] + "\n"); 
     */ 

    } 

    **// enters the response in the correct grid 
    public void logResponse() { 
     System.out.println("The responses are:\n"); 
     System.out.print("   "); // align column heads 
     // create a column heading for each question 
     for (int qNumber = 0; qNumber < responses[0].length; qNumber++) { 
      System.out.printf("Question number %d ", qNumber + 1); 
      System.out.println("Response"); // column heading 
     } 
     for (int response = 0; response < responses.length; response++) { 
      System.out.printf("Response %2d", response + 1); 
      for (int qNumber : responses[response])// output responses 
      { 
       System.out.printf("%8d", qNumber); 
      } 
     } 
    }** 
} 

回答

2

也許你希望你的數組的長度,而不是你的第一個元素的長度:

for (int qNumber = 0; qNumber < responses.length; qNumber++) { 
    System.out.printf("Question number %d ", qNumber + 1); 
    System.out.println("Response"); // column heading 
} 
+0

客戶調查 個 的響應有: 異常在線程 「主」 顯示java.lang.NullPointerException \t在Survey21.logResponse(Survey21.java:108) \t在Survey21.displaySurveyResults(Survey21.java:62) \t在SurveyTest21。 main(SurveyTest21.java:16) Java結果:1 –

+0

我得到上面的錯誤,這種方式 –

+0

它看起來像你的響應數組爲空。你沒有在每個構造函數中設置你的響應數組。你正在使用哪個構造函數? –

0

我沒有初始化我的數組妥善我做

private int[][] responses; 

,它應該是

private int[][] responses = new int[5][11]; 
相關問題