Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 处理警告的适当方式是什么:“警告”;类型x的表达式被装箱到x中;_Java_Eclipse_Autoboxing - Fatal编程技术网

Java 处理警告的适当方式是什么:“警告”;类型x的表达式被装箱到x中;

Java 处理警告的适当方式是什么:“警告”;类型x的表达式被装箱到x中;,java,eclipse,autoboxing,Java,Eclipse,Autoboxing,我不想像中那样关闭或忽略警告 我想知道,如果有人如此倾向于处理/避免此警告,正确的方法是什么。装箱和拆箱是您可以手动完成的操作,但它们内置在语言中,以避免您无疑会遇到的重复 Integer obj = Integer.valueOf(5); // instead of Integer obj = 5; int i = obj.intValue(); // instead of int i = obj; 在我看来,适当的方法来处理警告关闭它。但是,如果这不是一个选项,您可以执行上述操作。在我看来

我不想像中那样关闭或忽略警告


我想知道,如果有人如此倾向于处理/避免此警告,正确的方法是什么。

装箱和拆箱是您可以手动完成的操作,但它们内置在语言中,以避免您无疑会遇到的重复

Integer obj = Integer.valueOf(5); // instead of Integer obj = 5;
int i = obj.intValue(); // instead of int i = obj;

在我看来,适当的方法来处理警告关闭它。但是,如果这不是一个选项,您可以执行上述操作。

在我看来,最好显式地取消对值的装箱,因为这样可以使代码更具可读性。 当我们使用不同的拳击方法时,也可能会有细微的差异。例如

Integer i = new Integer(1);

Integer j = Integer.valueOf(1);
根据javadoc
Integer.valueOf()缓存对象,因此
i==j
将返回
false

另一种将基元显式装箱为整数的方法是


整数k=(整数)1Integer.valueOf()

不过,手动取消装箱有一个优点:显式取消对可能为空指针的引用。@Keats这不是什么优点。无论哪种方式,如果
obj
null
,您将得到
NullPointerException
。我想在这种情况下,它的来源更为明显。@Jeffery我的意思是,使用自动拆箱,您可能会忘记可能的NPE,而手动操作会迫使您考虑它。这就是OP警告的目的:即使你在使用自动拆箱,仍然强迫你考虑NPE。我倾向于同意Jeffrey关于“关闭警告”的观点。Eclipse根据您包含的链接,将此警告列在“潜在编程问题”下;但我不认为这是问题的根源。我同意这个答案,在我看来,最好是明确框unbox。除了使代码更加清晰外,它还确保您永远不会遇到中的链接中提到的问题。这些问题的可能性是否很小对我来说并不太重要,因为获得这种确定性(明确装箱拆箱)所付出的代价非常低。