在Java中,我的理解是每個類都從Object繼承。但是,如果我把下面的代碼,它不太願意:爲什麼我不能在double值上調用toString()?
Math.PI.toString()
它給人的錯誤:「靜態錯誤:在雙號方法名稱‘的toString’」
這是否意味着翻番不繼承目的?那麼,雙倍是什麼?
在Java中,我的理解是每個類都從Object繼承。但是,如果我把下面的代碼,它不太願意:爲什麼我不能在double值上調用toString()?
Math.PI.toString()
它給人的錯誤:「靜態錯誤:在雙號方法名稱‘的toString’」
這是否意味着翻番不繼承目的?那麼,雙倍是什麼?
Math.PI
是double
而double是原始類型,這意味着它沒有任何方法。如果它是Double
那麼你可以調用它的toString
方法,但我沒有看到任何理由。
如果你想創建雙重用途的字符串表示
String value = String.valueOf(Math.PI);
或
String value = Double.toString(Math.PI)
BTW String.valueOf(d)
返回結果的Double.toString(d)
。
Does this mean that
double
does not inherit fromObject
?
是的。
So what is
double
then?
這是一種內置於語言本身的原始類型。還有其他原始類型,如char
,0 short
,int
,float
,boolean
。
雖然,漢語是提供圍繞每個原始類型的內置包裝,從Object
延伸 - Integer
,Character
,Short
,Double
等
您可以使用Double.toString(double)
方法來獲取字符串表示。
沒有,Math.PI是雙(原始的,不是雙(對象),所以它不會從Object
這是因爲double
是一種原始的繼承,不從Object
繼承和不有它的行爲。你仍然可以調用toString()
上Double
這又是一個對象。
瞭解更多關於Java的原語和對象。This可能是有用的。
double
不是對象,而是一種原始的。因此,沒有Object的方法,如toString()
等
有一個對象版本的雙Double
這是圍繞double
對象包裝。
你可以通過調用Double myDouble = Double.valueOf(primative);
Double
也有靜態輔助方法常用操作上primvatives如toString
調用Double.toString(Math.PI);
創建雙可能是你想要什麼
點評:這款確實在C#中工作。 – PMF
@PMF我正要做出同樣的評論。它也適用於其他一些JVM語言,如Scala。 – arshajii
[看起來像double型變量沒有方法。有什麼錯誤的Java或NetBeans?](http://stackoverflow.com/questions/4557900/looks-like-double-type-variables-have-no-methods-something-wrong-with-java-or-n) –