2014-12-20 5 views
-1

나는 linkedlist 메서드로 변경해야하는 arraylist 메서드가 있습니다. int x 줄에 nullpointerexception을 던지고 있습니다. 다른 줄에 다른 nullpointerexception을 던지고 있습니다. 그러나 그 행은 메서드가 호출되는 곳입니다. 아래 코드는 다음과 같습니다arraylist 메서드를 linkedlist 메서드로 변경

Exception in thread "main" java.lang.NullPointerException 
    at PlantList.analyzePlants(PlantList.java:303) 
    at PlantList.main(PlantList.java:434) 


private void analyzePlants() { 
      String text = ""; 

      Node p = root; 
      while(p!=null) { 
       text = JOptionPane.showInputDialog(null,"Enter the string to analyze: "); 

      int x = analyze(p.plant.getName().toLowerCase(), analyzeText.getText().toLowerCase()); 
      text += p.plant.getName() + " : " + x + "\n"; 
      p =p.next; 
      } 
      JTextArea textArea = new JTextArea(text); 
      JScrollPane scrollPane = new JScrollPane(textArea); 
      textArea.setLineWrap(true); 
      textArea.setWrapStyleWord(true); 
      scrollPane.setPreferredSize(new Dimension(150, 300)); 
      JOptionPane.showMessageDialog(null, scrollPane, "Analyzation Completed", JOptionPane.CANCEL_OPTION); 
      analyzeText.setText(""); 
      p = p.next; 
    } 
    /** 
    * Recursive function to analyze the plants in the system. 
    */ 
    private int analyze(String name, String text) { 
      if (!name.contains(text)) { 
      return 0; 
      } 
      if (name.startsWith(text)) { 
      return 1 + analyze(name.substring(1), text); 
      } else { 
      return 0 + analyze(name.substring(1), text); 
      } 
     } 
+0

전체 오류 메시지도 게시 할 수 있습니까? –

+0

thread "main"의 예외 java.lang.NullPointerException \t PlantList.analyzePlants (PlantList.java:303) \t at PlantList.main (PlantList.java:434) 303 행은 int x이고 434는 호출입니다. 방법에. – Beth

+0

그래서 303 행은'int x' 행입니다. –

답변

0

null 인/

어느 p.plant, p.plant.getName(), analyzeText 또는 analyzeText.getText() 인 INT의 X 선에서 NullPointerException이 던지고.

업데이트 됨 분석 텍스트에서 메소드를 호출하기 전에 null 확인을 수행하십시오. 예 :

String param1 = p.plant.getName().toLowerCase() 
String param2 = "";//you can also initialize to null 
if(analyzeText != null && analyzeText.getText() != null) {param2 = analyzeText.getText().toLowerCase()} 
int x = analyze(param1, param2); 
+0

어느 것이 null인지 어떻게 알 수 있습니까? 나는 좀 새로운 사람이다. – Beth

+0

@Beth 디버거를 사용하거나'int x = ...'앞에'System.out.println (p.plant);''System.out.println (p.plant.getName());''System .out.println (p.plant.analyzeText);'System.out.println (p.plant.analyzeText.getText());'이제까지 null을 인쇄하고 있는데 Exception의 원인이됩니다. – sol4me

+0

감사합니다. 어떤 것이 있는지 확인하십시오. – Beth

관련 문제