遇到空指针异常需要第三双眼睛来协助

我奇怪地遇到了一个为我的联系人类打印 null 的问题。它似乎不喜欢 PhoneNumberList 的数字构造函数。我只是想返回跟踪数字等的计数,但它只为 getNumber 和 getNumberCount 返回 null。


尝试将计数从私有更改为公共以直接访问以及更改名称和构造函数。


  public class Contact{

    private String name;

    private PhoneNumberList numbers;


    // Purpose:

    //  initialize this instance of Contact

    //  with no PhoneNumber

    //

    public Contact (String theName)

    {

        // You must allocate a PhoneNumberList here

        numbers = new PhoneNumberList();

        name = theName;

    }


    // Purpose:

    //  initialize this instance of Contact

    //  add p to the list of phone numbers associated with 

    //  this Contact

    //

    public Contact (String theName, PhoneNumber p)

    {

        // You must allocate a PhoneNumberList here

        PhoneNumberList numbers = new PhoneNumberList();

        name = theName;

        numbers.add(p);


    }


    // Purpose: 

    //  return the name associated with this instance

    //

    public String getName ()

    {

        return name;

    }


    // Purpose:

    //  change the name associated with this instance to be newName

    //

    public void setName(String newName)

    {

        name = newName;

    }


    // Purpose:

    //  add a new PhoneNumber to this contact

    //  there is no maximum number of phone numbers that can be

    //  assigned to a contact.

    //

    public void addNumber (PhoneNumber p)

    {

        numbers.add(p);

    }


    // Purpose:

    //  remove p from the list of PhoneNumbers associated with this contact

    //  if p is not in the list, do nothing.

    //

    public void removeNumber (PhoneNumber p)

    {

        int index = numbers.find(p);

        numbers.remove(index);

    }


    // Purpose:

    //  return the count of PhoneNumbers associated with this contact

    //

    public int getNumberCount()

    {

        return numbers.count;

    }


Helenr
浏览 80回答 1
1回答

红糖糍粑

以下构造函数是错误的。它正在方法中创建一个名称为 numbers 的临时对象。public Contact (String theName, PhoneNumber p){    // You must allocate a PhoneNumberList here    PhoneNumberList numbers = new PhoneNumberList();    name = theName;    numbers.add(p);}您需要将其更改为public Contact (String theName, PhoneNumber p){    // You must allocate a PhoneNumberList here    numbers = new PhoneNumberList();    name = theName;    numbers.add(p);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java