2011-08-23 60 views
23

下面的小測試拋出一個NPE:未記錄的String.compareTo(null)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。這很奇怪,因爲Javadoc通常提到參數不能爲null

這只是文檔中的一個小故障或者是否存在一個更根本的原因/扭曲我失蹤?

+0

http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Comparable.html – fireshadow52

回答

33

你可以得到一些解釋,當你看Comparable接口:

注意,null不是任何類的實例,並e.compareTo(空) 應該拋出一個NullPointerException儘管如等於(null)返回 false。

+0

好的,明白吧。感謝您指出這一點。 – JVerstry

+0

我的榮幸。我正在尋找一種不錯的方式來超越當今3.6公里的聲望。 ;) – Snicolas

+0

贏得積分越來越難......大聲笑 – JVerstry