Java Eclipse空分析:int类型的表达式需要未经检查的转换才能符合'@非空整数';
配置Eclipse4.2.0以执行空分析(配置为使用Java Eclipse空分析:int类型的表达式需要未经检查的转换才能符合'@非空整数';,java,eclipse,null,static-analysis,non-nullable,Java,Eclipse,Null,Static Analysis,Non Nullable,配置Eclipse4.2.0以执行空分析(配置为使用@javax.annotation.Nonnull等)时,以下代码将生成警告 Null类型安全:int类型的表达式需要取消选中 转换为符合“@Nonnull Integer” 我应该如何解决这个问题(不使用@SuppressWarnings(“null”))呢?分析器似乎不知道盒装原语不能为null我认为这是Eclipse中的一个bug。我在IntelliJ上也尝试了同样的方法,它在那里的效果和预期的一样 当我传递空值时,IntelliJ正确地
@javax.annotation.Nonnull
等)时,以下代码将生成警告
Null类型安全:int类型的表达式需要取消选中
转换为符合“@Nonnull Integer”
我应该如何解决这个问题(不使用
@SuppressWarnings(“null”)
)呢?分析器似乎不知道盒装原语不能为null
我认为这是Eclipse中的一个bug。我在IntelliJ上也尝试了同样的方法,它在那里的效果和预期的一样
当我传递空值时,IntelliJ正确地告诉我不允许空值
但是,当我使用普通I变量时,不会弹出错误,这是非常正确的。
我甚至试过这个,只是为了实验,所以我不确定你是否坚持使用Eclipse,否则我建议你要么使用免费的IntelliJ,要么使用
这是Eclipse中的一个bug,它在即将发布的4.5版本的里程碑7中得到了修复。它还没有完全修复,请参阅
class C
{
static void foo(int i)
{
bar(i); // Warning
}
static void bar(@javax.annotation.Nonnull Integer i)
{
}
}