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
因为f
上的0x123f
被视为十六进制数字,0
和0123f
上的前导0123d
不会导致浮点数被视为八进制。
有没有办法为十六进制和八进制文字禁用此检查只,还是只需要禁用整个检查?
答案 0 :(得分:1)
不,没有办法只为十六进制和八进制文字禁用此检查。您可以通过按Alt-Enter菜单中的右箭头并选择所需的抑制选项来抑制代码中特定事件的检查。