为什么我不能在double值上调用toString()?

时间:2013-10-27 19:49:01

标签: java inheritance

在Java中,我的理解是每个类都继承自Object。但是,如果我调用以下代码,它就会bal:

Math.PI.toString()

它给出错误:“静态错误:double中的方法没有名称'toString'”

这是否意味着double不会从Object继承?那么什么是双重呢?

6 个答案:

答案 0 :(得分:5)

  

这是否意味着double不会继承Object

  那么什么是double呢?

它是语言本身内置的原始类型。还有其他原始类型,如charshortintfloatboolean

尽管如此,该语言确实提供了围绕每种基本类型构建的包装器,它包括Object - IntegerCharacterShortDouble等。
您可以使用Double.toString(double)方法获取字符串表示。

答案 1 :(得分:4)

Math.PIdouble,double是原始类型,这意味着它没有任何方法。如果它是Double,那么您可以调用其toString方法,但我没有看到任何理由。

如果要创建双重使用的字符串表示

String value = String.valueOf(Math.PI);

String value = Double.toString(Math.PI) 

BTW String.valueOf(d)会返回Double.toString(d)的结果。

答案 2 :(得分:3)

不,Math.PI是double(原语,而不是Double(Object),因此它不会从Object继承

答案 3 :(得分:3)

那是因为double是原始的。它不继承自Object并且没有它的行为。您仍然可以在toString()上拨打Double,而{{1}}又是一个对象 阅读有关Java中的基元和对象的更多信息。 This可能有用。

答案 4 :(得分:2)

double不是对象,而是原语。因此它没有对象的方法,如toString()等。

有一个名为Double的双精度对象版本,它是double周围的对象包装器。

您可以致电Double myDouble = Double.valueOf(primative);

创建一个Double

Double还有一些静态辅助方法,用于对诸如toString之类的对象进行常见操作

调用Double.toString(Math.PI);可能就是你想要的

答案 5 :(得分:1)

double是一种基本类型,但您可以使用Java Double类来提供帮助。

这应该做你需要的:

Double.toString(Math.PI)