【发布时间】:2016-04-18 15:49:30
【问题描述】:
为什么即使integer 为真,下面的sn-p 总是返回Double?
double bar = 100.0;
Object foo = integer ? (int) bar : bar;
同样的代码,改写为:
double bar = 100.0;
Object foo;
if (integer) {
foo = (int) bar;
}
else {
foo = bar;
}
没有任何问题。
【问题讨论】:
-
因为
integer是false -
我建议包括所有相关代码(包括“整数”的初始化)。
-
Foo 是一个对象,通过 (Integer) 而不是 (int) 进行转换不是明智的吗?
-
另外,不要使用保留关键字的替代大小写版本作为变量名。
标签: java