将数组列表方法更改为链接列表方法



我有一个数组列表方法,我需要将其更改为linkedlist方法。它在int x线上抛出了一个nullpointerexception。它正在抛出另一行的另一个空指针异常。但该行是调用该方法的位置。下面是代码:

  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);
          }
         }

它在 int x 行抛出一个空指针异常

p.plantp.plant.getName()analyzeTextanalyzeText.getText()都是空的。

已更新 在对分析文本调用任何方法之前,请执行空检查。 例如

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);

相关内容

  • 没有找到相关文章

最新更新