6

在配置 Eclipse 4.2.0 执行空值分析(配置为使用@javax.annotation.Nonnull等)时,以下代码会产生警告

Null 类型安全:int 类型的表达式需要未经检查的转换才能符合 '@Nonnull Integer'

class C
{
  static void foo(int i)
  {
    bar(i); // Warning
  }

  static void bar(@javax.annotation.Nonnull Integer i)
  {
  }
}

我应该如何解决这个问题(不使用@SuppressWarnings("null"))?分析器似乎不知道盒装原语不能null

4

1 回答 1

3

我认为这是 Eclipse 中的一个错误。我对 IntelliJ 进行了同样的尝试,它在那里按预期工作。

当我传递 Null 时,IntelliJ 正确地告诉我不允许使用空值。

在此处输入图像描述

但是,当我使用普通的 i 变量时,没有弹出错误,这是非常正确的。 在此处输入图像描述

我什至试过这个,只是为了实验,所以我不确定你是否坚持使用 Eclipse,否则我建议使用IntelliJ的免费社区版或Ultimate 版

在此处输入图像描述

于 2013-08-11T16:47:23.377 回答