存储多个字符串时出现Java NullPointerException

Dr_*_*r_N 1 java

我正在写一个程序,我迫切需要一些帮助.

我有一个类需要同时跟踪多个对象.

我试着这样做:

public class tracker {
   private String[] Name;
   private int NameCounter;

   public void getName(String name) {
      Name[NameCounter] = name;
      NameCounter = NameCounter + 1;
   }
   public static void main(String[] args) {
      getName("Name1");
      getName("Name2");

      System.out.println(Name[1] + " " + Name[2])
   }
}
Run Code Online (Sandbox Code Playgroud)

我得到一个错误,说我有一个NullPointerException.我该怎么办?

Den*_*ret 5

Name 为null,因为您没有实例化该数组.

你可以做

private String[] Name = new String[2];
Run Code Online (Sandbox Code Playgroud)

但是,由于数组具有固定长度,如果您认为可能需要更多名称,我建议您在此处使用ArrayList:

public class tracker {
   private ArrayList<String> names = new ArrayList<String>(); // please follow naming conventions

   public void addName(String name) { // getName is a baaad name for a method that changes a variable
      names.add(name);
   }
   public static void main(String[] args) { // main, not mian
      addName("Name1");
      addName("Name2");
      System.out.println(names.get(0) + " " + names.get(1)) // the second one is at index 1, not 0
   }
}
Run Code Online (Sandbox Code Playgroud)