看起来双重变量没有方法。 Java或Netbeans出了问题?
-
14-10-2019 - |
题
根据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
, ,等)没有方法。
不隶属于 StackOverflow