2013-08-22 65 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]; 
相关问题