重写代码时:
@Override
public void open(ExecutionContext executionContext) {
super.open(executionContext);
来自:org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader<T>
我收到了一个IntelliJ警告:
Not annotated parameter overrides @??? parameter less... (Strg+F1)
Inspection info: Reports problems related to @Nullable and @NotNull annotations usage configured in Constant conditions & exceptions inspection.
我能做些什么来避免这种情况?
1条答案
按热度按时间s5a0g9ez1#
说明
虽然我不能在
AbstractItemCountingItemStreamItemReader
上从这个工件复制这个,这个注解意味着父方法在参数上有一些
@NotNull
/@NonNull
注解,而重写方法没有。要修复它,您需要在重写方法上放置相同的注解。
正如我所写的,在我下载的版本中没有这样的注解,但是请检查您的源代码并从那里复制参数注解。
此警告有时会出错,因此它可以帮助重新启动IDEA。当我试图编写一个简单的示例来重现该警告时,重新启动很有帮助。
一个简单的可复制示例
父类:
子类:
为了100%确定,我已经将
org.springframework.lang.NonNull
和org.springframework.lang.Nullable
注解添加到检查Java | Probable bugs | @NotNull/@Nullable problems
(在File | Settings | Editor | Inspections
中)的相应Nullable
/NonNull
注解中。您可以通过按下Configure annotations
按钮来执行此操作(参见屏幕截图)。结果,我得到了child类
#nonNullMethod
的警告:特别要注意的是,非注解的
@Nullable
方法不会引发任何警告。警告仅在IDEA重新启动后起作用。
如果你在检查设置中打开/关闭复选框并试图重现它们,整个检查看起来工作得很不正常。因此,再次,重新启动/无效缓存可能有助于摆脱或显示不正确的警告。