我试图在类中的方法中引用变量,并继续运行到NullPointerException。我知道在addPerson方法中引用变量pbook时会发生这种情况。为什么会发生这种情况,我该如何解决呢?

public class Phonebook <T> {

  private LinkedList<T> pbook;

  public T findPerson(T person) {
    for (int i = 0; i < pbook.size(); i++) {
      if (pbook.get(i).equals(person)) {
        return person;
      }
      else
      {
        i++;
      }
    }
    return null;
  }

  public void addPerson(T person) {
    pbook.addFirst(person);
  }

  public void deletePerson(T person) {
    for (int i = 0; i < pbook.size(); i++) {
      if (pbook.get(i).equals(person)) {
        pbook.remove(i);
      }
      else
      {
        i++;
      }
    }
  }


  /**
   * @param args
   */
  public static void main(String[] args){

    try{
     Phonebook<Integer> sspb = new Phonebook<Integer>();
     Phonebook<String> idpb = new Phonebook<String>();
     sspb.addPerson(1234567890);
     idpb.addPerson("Bob");

    }
    catch (Exception e){
      e.printStackTrace();
    }
  }
}

最佳答案

您必须添加一个构造函数以实例化您的LinkedList

public Phonebook() {
    pbook = new LinkedList<T>();
}

10-06 08:29