equals()给我空指针异常

时间:2013-02-04 18:41:24

标签: java nullpointerexception package

这是我的平等方法:

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)

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;

}

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

3 个答案:

答案 0 :(得分:2)

因为this.genre为空?

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我怀疑您在Car Object中与null字符串genre相等,导致NullPointerExcaption

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

还有一件事 -

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

应为==