25

次の小さなテストはNPEをスローします。

public class Test {

    public static void  main(String[] args) {

        String a = "a";
        String b = null;

        System.out.println(a.compareTo(b));

    }

}

ただし、 compareTo()のJavadocには、パラメーターを。にすることはできないとは記載されていませんnull。Javadocsは通常、パラメータを設定できない場合に言及しているため、これは奇妙なことnullです。

これはドキュメントの単なる不具合ですか、それとも私が見逃しているより根本的な理由/ねじれがありますか?

4

1 に答える 1

36

Comparableインターフェースを見ると、いくつかの説明が得られます。

nullはどのクラスのインスタンスでもないことに注意してください。また、e.equals(null)がfalseを返したとしても、e.compareTo(null)はNullPointerExceptionをスローする必要があります。

于 2011-08-23T22:58:10.670 に答える