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;
}

}

何らかの理由で、この行で null ポインター例外が発生します: 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;

}

null ポインター例外が発生するのはなぜですか?

4

3 に答える 3

2

this.genreヌルだから?

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

文字列比較の実行時に null を正しく処理するライブラリの使用を開始します。

apache commons lang の使用を開始します。ここにStringUtils JavaDoc ページがあります

于 2013-02-04T18:46:11.433 に答える
0

Car ObjectのnullStringと同等であると思われます。genreNullPointerExcaption

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

もう一つ -

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

である必要があります==

于 2013-02-04T18:46:24.797 に答える