"double Cannot be Dereferenced" toString() - 这种没有错误的替代形式是否意味着同样的事情?



在下面的代码片段中,int正确返回,但当我尝试用double NetBeans 8.0.2做同样的事情时,会抱怨"double Cannot be Dereferenced">

未注释的变量有效。注释掉的变量是双变量,不起作用。

@Override
public String toString() 
{
    return "[" + getAccountNumber() + "], " +
            super.toString() + ", " +
            owner.toString() 
          // Error: "Double Cannot be Dereferenced" why?
          //  + ", " + currentBalance.toString()
          //  + ", " + interestRate.toString()
            ;
}

当我这样重写它时,NetBeans不会给我一个错误,但这对替身来说实际上是一样的吗?

@Override
public String toString() 
{
    return "[" + getAccountNumber() + "], " +
            super.toString() + ", " +
            owner.toString() 
          // Error: "Double Cannot be Dereferenced"
          //  + ", " + currentBalance.toString()
          //  + ", " + interestRate.toString()
          // The following seems to work instead:
            + ", " + Double.toString(currentBalance)
            + ", " + Double.toString(interestRate)
            ;
}

如果是的话,那就太好了。没有错误。如果不是,我该怎么做才能确保double的值像int一样返回到String?

更新:从我收到的答案来看,我使用的第二种方法似乎有效,但以下方法也同样有效:

 @Override
public String toString() 
{
    return "[" + getAccountNumber() + "], " +
    super.toString() + ", " +
    owner + ", " +
    currentBalance + ", " +
    interestRate;
}

我敢打赌它不是在说"Double Cannot be Dereferenced";它很可能说"double不能被取消引用"。(注意Double(表示包装类java.lang.Double(和基元类型double之间的区别(。

您没有显示currentBalance是什么,但它可能是double基元类型的变量。不能在基元类型上调用方法,这就是为什么会收到错误消息。

进行字符串串联时,不需要显式调用变量上的toString()。试试这个:

@Override
public String toString() 
{
    return "[" + getAccountNumber() + "], " +
        super.toString() + ", " +
        owner + ", " +
        currentBalance + ", " +
        interestRate;
}

Primitive types没有方法,它们不是objects。不能调用primitives上的方法。

你得到的错误是:

double cannot be dereferenced

而不是:

Double cannot be dereferenced

doubleprimitiveDouble是基元double的包装器,它是Object

不能在double上调用方法,但可以在Double上调用。

因此Double.toString(currentBalance)是正确的。currentBalance.toString()不是。

你还说:"未注释的变量是int和work">

事实上,由于同样的原因,如果它的int是不起作用的。

相关内容

  • 没有找到相关文章

最新更新