我有一个Value班级,其中有一个Object value.我想将值用作String,Integer或Double.
该asDouble方法控制instanceof值对象.如果不是Double或Integer返回0.
一般来说它有效但有时虽然有效Double returns 0;.我不能理由.
当我调试时,我可以看到:
这是我的Value类
public class Value{
public Object value;
public Value(Object value) {
this.value = value;
}
public Double asDouble() {
if (this.value instanceof Integer || this.value instanceof Double) {
return Double.parseDouble(String.valueOf(this.value));
} else {
return 0.0;
}
}
}
Run Code Online (Sandbox Code Playgroud)
谁能解释我哪里出错了?
简答:详情很重要.
一些信息:value类实例变量(也称为属性或成员变量)是一个名为的类Value.由于该类Value既不是类Integer也不是Double类,否则else分支将始终执行.
该Value班也有一个名为成员变量value,它在你的榜样,有一个类型的Double.
在您包含的屏幕截图中,Value对象将其value成员变量设置为"thing",其中也包含该类型Value.我知道这一点,因为对话框显示"value = Value(id:82)".
| 归档时间: |
|
| 查看次数: |
637 次 |
| 最近记录: |