eclipse的GetAnnotation方法返回@NonNull。

huangapple go评论75阅读模式
英文:

eclipse GetAnnotation returns @NonNull

问题

我正在尝试使用 Eclipse 的 org.eclipse.jdt.annotation.NonNull 注解,但我不明白这段代码的含义。

方法签名:

@NonNull MyAnnotation java.lang.reflect.Field.getAnnotation(Class<@NonNull MyAnnotation> annotationClass)

循环部分:

if(field.getAnnotation(MyAnnotation.class)!=null)
    continue;

Eclipse 声明以下代码为死代码:

try{

为什么 Eclipse 认为 getAnnotation 方法返回的是 @NonNull?文档明确说明它可以返回 null

我已经通过调试器验证了代码不是死代码,在步进中进行了验证。

编辑:
我没有在任何包上使用 @NonNullByDefault

我尝试过:

  • MyAnnotation 上添加 @Nullable,但收到了 The nullness annotation 'Nullable' is not applicable at this location 的错误。
  • @Nullable MyAnnotation n=field.getAnnotation(MyAnnotation.class);
    仍然是同样的问题。
英文:

I am trying to use the Eclipse org.eclipse.jdt.annotation.NonNull annotations and i don't understand this

method signature:

@NonNull MyAnnotation java.lang.reflect.Field.getAnnotation(Class&lt;@NonNull MyAnnotation&gt; annotationClass)
for loop:
if(field.getAnnotation(MyAnnotation.class)!=null)
    continue;

Eclipse declares the following code dead code

try{

Why does eclipse think the getAnnotation class returns @NonNull?
The docs clearly state it can return null.

I have verified via a debugger that the code is not dead, stepping trough.

EDIT:
I do not use @NonNullByDefault on any package

I tried:

  • adding @Nullable to MyAnnotation, i get The nullness annotation &#39;Nullable&#39; is not applicable at this location
  • @Nullable MyAnnotation n=field.getAnnotation(MyAnnotation.class);
    still same problem

答案1

得分: 0

通过添加第一行代码来消除警告:

Class<MyAnnotation> c = MyAnnotation.class;

if (field.getAnnotation(c) != null)
    continue;

之后,我不再收到死代码警告。

不知何故,Eclipse 自动将 @NonNull 注解添加到 MyAnnotation 中。

英文:

Got rid of the warning by adding the first line:

Class&lt;MyAnnotation&gt; c = MyAnnotation.class;

if(field.getAnnotation(c)!=null)
    continue;

After that i do not get the dead code warning.

Somehow Eclipse is adding the @NonNull annotation automatically to MyAnnotation.

huangapple
  • 本文由 发表于 2020年8月21日 15:16:32
  • 转载请务必保留本文链接:https://go.coder-hub.com/63518206.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定