Java Eclipse空分析:int类型的表达式需要未经检查的转换才能符合'@非空整数';

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正确地

配置Eclipse4.2.0以执行空分析(配置为使用
@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)
  {
  }
}