java - Eclipse 空类型安全在返回值上是错误的

标签 java eclipse eclipse-jdt non-nullable

Eclipse 似乎做错了 analisys,方法 test1 没问题,但是方法 test2 给出了错误:

Null类型安全:String类型的表达式需要unchecked转换才能符合@NonNull

public class TestCase {
   public Object o;

  @NonNull
  public Object test1()  {
      Object local = new Object();
      return local;
  }

  @NonNull
  public Object test2()  {
      o = new Object();
      return o;
  }    
}

最佳答案

我怀疑问题是您返回的值可能已被其他线程更改。基本上,该方法有可能返回空引用。您可以通过使用临时变量来避免这种情况:

@NonNull
public Object test2()  {
    Object tmp = new Object();
    o = tmp;
    return tmp;
}    

关于java - Eclipse 空类型安全在返回值上是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18546785/

相关文章:

eclipse - 在 Eclipse 中以编程方式折叠

java - 对列表中的部分项目进行动画处理

Java:如何询问用户是否想再玩一次

java - 如何显示 Eclipse Java 中特定方法内调用的所有方法?

java - Eclipse (Java) - 创建新包后,我无法向其中添加源文件

java - 如何获取 AST 中节点的完全限定名称?

java - Array.sort() 是否实现了可比较?当我查看 Array 类时,它没有,那么这里的排序是如何工作的呢?

java - Scanner.next() 不会停止

c++ - 如何在 xtext DSL 中嵌入 C++ 代码?

java - 从 IType 实例化对象