gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 16:56:06 25 4
gpt4 key购买 nike

在下面的代码片段中,int 正确返回,但是当我尝试对 double 执行相同的操作时,NetBeans 8.0.2 提示“double 无法取消引用”

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

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

// + ", " + currentBalance.toString()
// + ", " + interestRate.toString()
;
}

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

@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 Cannot be Dereferenced”。 (请注意Double(表示包装类java.lang.Double)和基本类型double之间的区别)。

您没有显示 currentBalance 是什么,但它可能是基本类型 double 的变量。您无法调用基本类型的方法,这就是您收到错误消息的原因。

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

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

关于java - "double Cannot be Dereferenced"toString() - 这种没有错误的替代形式是否意味着同样的事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32741911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com