java:NullPointerException,需要帮助吗

java:NullPointerException,需要帮助吗,java,eclipse,constructor,Java,Eclipse,Constructor,现在,这里是BankAccount类,我试图从中提取帐户和余额 Exception in thread "main" java.lang.NullPointerException at pkgPeople.Person.toString(Person.java:154) at java.lang.String.valueOf(Unknown Source) at java.io.PrintStream.println(Unknown Source) at pkgPeople.MakePeople

现在,这里是BankAccount类,我试图从中提取帐户和余额

Exception in thread "main" java.lang.NullPointerException
at pkgPeople.Person.toString(Person.java:154)
at java.lang.String.valueOf(Unknown Source)
at java.io.PrintStream.println(Unknown Source)
at pkgPeople.MakePeople.main(MakePeople.java:32)
你知道为什么会这样吗?这是一个构造函数错误吗


谢谢

幸运的是,您提供的堆栈跟踪可以帮助您轻松确定错误发生的位置。我的目标是帮助您自己弄清楚,以便将来您知道如何利用堆栈跟踪

让我们利用我们所知道的。我们知道您将获得一个NullPointerException,这通常意味着您正在使用一个尚未初始化的对象,因此它是null,我们知道它在第154行


记住这一点,看看第154行,看看哪里有空对象。您应该有足够的信息来解决这个问题。

幸运的是,您提供的堆栈跟踪可以帮助您轻松确定错误发生的位置。我的目标是帮助您自己弄清楚,以便将来您知道如何利用堆栈跟踪

让我们利用我们所知道的。我们知道您将获得一个NullPointerException,这通常意味着您正在使用一个尚未初始化的对象,因此它是null,我们知道它在第154行

记住这一点,看看第154行,看看哪里有空对象。你应该有足够的信息来解决这个问题。

我打赌bankAccount是空的

在此构造函数中:

package pkgPeople;

import java.io.Serializable;


public class BankAccount implements Serializable{

long acctID;
double balance;
String dateCreated;

public BankAccount(long acctID, double balance)
{
    this.acctID = acctID;
    this.balance = balance;
}


public long getAcctID() {
    return acctID;
}
public void setAcctID(long acctID) {
    this.acctID = acctID;
}
public double getBalance() {
    return balance;
}
public void setBalance(double balance) {
    this.balance = balance;
}
public String getDateCreated() {
    return dateCreated;
}
public void setDateCreated(String dateCreated) {
    this.dateCreated = dateCreated;
}

}
你不想做我打赌你想做的事:

// We have another constructor; this is also a method 
public Person(int height,int weight, String name, BankAccount bankAccount) 
   { 
    personCT++; 
    this.name = name; 
    this.height = height; 
    this.weight = weight; 
   } 
我打赌银行账户是空的

在此构造函数中:

package pkgPeople;

import java.io.Serializable;


public class BankAccount implements Serializable{

long acctID;
double balance;
String dateCreated;

public BankAccount(long acctID, double balance)
{
    this.acctID = acctID;
    this.balance = balance;
}


public long getAcctID() {
    return acctID;
}
public void setAcctID(long acctID) {
    this.acctID = acctID;
}
public double getBalance() {
    return balance;
}
public void setBalance(double balance) {
    this.balance = balance;
}
public String getDateCreated() {
    return dateCreated;
}
public void setDateCreated(String dateCreated) {
    this.dateCreated = dateCreated;
}

}
你不想做我打赌你想做的事:

// We have another constructor; this is also a method 
public Person(int height,int weight, String name, BankAccount bankAccount) 
   { 
    personCT++; 
    this.name = name; 
    this.height = height; 
    this.weight = weight; 
   } 

1正确格式化代码,使用编辑器中的图标2异常打印的堆栈跟踪是什么?1正确格式化代码,使用编辑器中的图标2异常打印的堆栈跟踪是什么?非常感谢您的建议:没问题。让别人引导我找到正确答案比让别人给我正确答案更有益。@D Spigle别担心,我希望你能理解如何阅读stacktrace,他们几乎总能提供你需要的所有信息。非常感谢你的建议:没问题。让人们引导我找到正确的答案比让人们给我正确的答案更有益。@D Spigle别担心,我希望你能理解如何阅读stacktrace,他们几乎总能提供你需要的所有信息。
this.bankAccount = bankAccount;