Not annotated parameter overrides @NonNullApi parameter

现象

idea警告,就下面这样

Not annotated parameter overrides @NonNullApi parameter

你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
类似的还有这个:

Not annotated parameter overrides @NotNull parameter

这个警告看起来很不友好,看起来是让你加上@NotNull注解或者@NonNullApi ,但是加了根本没用!!!
虽然只是警告 但是强迫症很难受!!!


问题说明

错误提示是

Not annotated parameter overrides @NonNullApi parameter

直译:没有被注解的参数重写了@NonNullApi参数
这个提示是说因为被重写的方法的包被这个@NonNullApi注解了,所以方法参数也需要被注解
提示Not annotated parameter是说没有给参数加注解,至于加啥注解提示里没说。

解决方式(两种)

使用“javax.annotation.Nonnull”注解可以解决

直接给参数添加@Nonnull注解

import javax.annotation.Nonnull;

@Slf4j
@Configuration
public class ScheduledConfigurer implements SchedulingConfigurer {
    @Override
    public void configureTasks(@Nonnull ScheduledTaskRegistrar taskRegistrar) {
        taskRegistrar.setScheduler(taskExecutor());
    }
}

使用“org.springframework.lang.NonNullApi”注解可以解决

在package-info.java文件中给包加上@NonNullApi注解
注意是package-info文件

@NonNullApi
package com.jswdwsx.configurer;

import org.springframework.lang.NonNullApi;

版权声明:本文为u010234516原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。