对十六进制和八进制int文字禁用intellij“不必要的装箱”

时间:2018-02-17 10:17:24

标签: java intellij-idea

Intellij标记代码如下:

float f = Float.valueOf(0x123);
float g = Float.valueOf(0123);
double h = Double.valueOf(0123);
System.out.printf("%s %s %s%n", f, g, h);

使用不必要的拳击。它建议将其修改为:

float f = 0x123f;
float g = 0123f;
double h = 0123d;
System.out.printf("%s %s %s%n", f, g, h);

这是不一样的。而第一个代码打印:

291.0 83.0 83.0

第二个代码打印:

4671.0 123.0 123.0

Ideone demo

因为f上的0x123f被视为十六进制数字,00123f上的前导0123d不会导致浮点数被视为八进制。

有没有办法为十六进制和八进制文字禁用此检查,还是只需要禁用整个检查?

1 个答案:

答案 0 :(得分:1)

不,没有办法只为十六进制和八进制文字禁用此检查。您可以通过按Alt-Enter菜单中的右箭头并选择所需的抑制选项来抑制代码中特定事件的检查。