这是我的平等方法:
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;
}
为什么我得到空指针异常?
答案 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){
^^^^
应为==
。