0

这是我的平等方法:

public boolean equals(Car other)
{
if (other == null)
{
    return false;
}

if (this.genre.equals(other.genre))
{

    if (this.price == other.price && this.height == other.height && this.name == other.name && this.door = other.door)
    {
        return true;
    }
    else
    {
        return false;
    }

}
else
{
    return false;
}

}

出于某种原因,这一行给了我一个空指针异常:this.genre.equals(other.genre)

流派是来自另一个包的变量;

所有变量都在 Car 类中声明。该程序编译良好。

这是 Car 的构造函数:

    public Car(double price, float height, String genre, String name, int door)
{
    super(price, height, genre);
            this.name = name;
            this.door = door;

}

为什么我得到一个空指针异常?

4

3 回答 3

2

因为this.genre是空的?

if (this.genre != null && this.genre.equals(other.genre))
于 2013-02-04T18:43:09.193 回答
0

开始使用在执行字符串比较时正确处理空值的库。

开始使用 apache commons lang。这是StringUtils JavaDoc 页面

于 2013-02-04T18:46:11.433 回答
0

null我怀疑您与 Car Object 中的String相等,genre这导致NullPointerExcaption.

if (this.genre!=null && this.genre.equals(other.genre)){...}

还有一件事 -

...
if(...this.door = other.door){
           ^^^^

应该是==

于 2013-02-04T18:46:24.797 回答