根据Oracle,我应该能够应用类似的方法 .intValue().compareTo() 双打,但是当我写作时 dbl.toString() 例如,在Netbeans中,IDE告诉我,双打不能被删除。我什至无法以形式将它们扔给整数 (Integer) dbl!
我有JDK 1.6和Netbeans 6.9.1。这里有什么问题?

有帮助吗?

解决方案

问题在于您对对象与原语的理解。

最重要的是,您只需要认识到资本化名称是对象类 行为 像原始图一样,只有当您需要将基本数据发送到仅接受对象的方法中时,才真正需要。您的演员阵容失败了,因为您试图将原始(双重)施放到一个对象(整数)而不是另一个原始(int)。

以下是使用原语与对象合作的一些示例:

双类具有静态方法tostring():

double d = 10.0;
// wrong
System.out.println(d.toString());
// instead do this
System.out.println(Double.toString(d));

其他方法可以直接使用操作员而不是调用方法。

double a = 10.0, b = 5.0;

// wrong
if( a.compareTo(b) > 0 ) { /* ... */ }
// instead you can simply do this:
if( a >= b) { /* ... */ }

int a = 0;
double b = 10.0;

// wrong
a = b.intValue();
// perform the cast directly.
a = (int)b;

其他提示

您提到的方法是在双重类上找到的(而不是在双原始类型中)。使用原始类型总是更有效的,但是如果您绝对需要这些方法,请创建一个新的双重对象:

double d = 10.0;
Double myDouble = new Double(d);

double是原始的不是对象。因此,它没有方法。通常,您想做的就是使用类似的语言。

double d = 1.1;
System.out.println("d= "+d); // calls Double.toString(d) for you.

int i = (int) d; // more efficient than new Double(d).intValue();

if (d >= 1.0) // does a compare.

也许,如果您说要实现的目标,我们可以将您指向Java代码,这将做到这一点。

每个对象都有一种to弦方法,因此也许您的JDK在NetBean中未正确配置。

你要 (java.lang.)Double 不是原始的 double

本地类型(int, float, double, ,等)没有方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top