如何避免在代码中使用所有强制转换,以免 Sonar 将我的值装箱/拆箱?
这是我的代码:
Double value = (Double) input.get(0);
int integer = new Double(value).intValue();
Double dec = Math.abs(value - (new Double(integer ).doubleValue()));
我想尽可能避免强制转换,但我不确定我是否可以以这种方式将其装箱。
有什么想法吗?
谢谢。
最佳答案
我不确定 input.get()
返回什么类型,因此我假设第一次强制转换是必要的。您无需在每一行实例化新的 Double
对象,只需调用其方法即可返回所需的正确键入的值。
Double value = (Double) input.get();
int integerPart = value.intValue();
double decimalPart = Math.abs(value - integer.doubleValue());
看起来您只是想提取 double 的整数和小数部分,在这种情况下,此代码更清楚地表达了意图:
Double value = (Double) input.get();
int integerPart = value.intValue();
double decimalPart = Math.abs(value - Math.floor(value));
关于java - 在 Java 中,Double 值被装箱,然后立即取消装箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32884249/