如何使检查警告将对象强制转换为基元,即当方法使用int但将Integer传递给它时发出警告

时间:2018-09-21 07:25:21

标签: java intellij-idea

好吧,标题很简单,我想在调用方法时被警告:

private static void doSomething(int i){
//code
}

使用

Integer iMightBeNull = null;
doSomething(iMightBeNull);

这将始终给出java.lang.NullPointerException,这是根本原因。

但是在Java检查中,我唯一发现的只有“数字强制转换会失去精度”-不适用,因为它们具有相同的精度“不必要的数字强制转换”-警告相反,“隐式数值转换”-发出警告将int传递给long方法,即“ Overly strong type cast”(超强类型转换)-如果仅父级就足够将子对象转换为祖父母,则发出警告。

2 个答案:

答案 0 :(得分:1)

默认情况下启用的“恒定条件和异常”检查在此代码上报告警告:“对iMightBeNull取消装箱可能会产生'NullPointerException'”。

答案 1 :(得分:0)

我真的不想回答我自己的问题,希望给别人一些战利品,但是事不宜迟:

在将Integer转换为int(或Boolean转换为boolean,或Long转换为long等)时,“自动拆箱”会突出显示

关于该主题的其他内容(当在另一种相似类型上使用针对某种类型的方法时发出警告):

  • 将int转换为long或long转换为int时,“隐式数值转换”突出显示

  • 将int转换为Integer时,“自动装箱”突出显示