我在我的 package-info.java
上为存储库接口(interface)添加了 @org.springframework.lang.NonNullApi
注释。
@NonNullApi
package ....jpa.repository;
IntellJ IDEA 告诉我的 static
方法中的参数(或参数)不需要检查。
final class RepositoryUtil {
static void doSome(final CriteriaBuidler builder) {
if (builder == null) { // <<-- right here!!!
throw new NullPointerException("builder is null");
}
}
}
IntelliJ IDEA 告诉我
Parameter 'builder' inherits container annotation, thus 'non-null`
它告诉我的是事实吗?
最佳答案
是的。
根据文档,@NonNullApi
是“一个常见的 Spring 注释,用于声明给定包的参数和返回值默认为不可为空。”
如果RepositoryUtil
是你用@NonNullApi
注释的包的一部分,它的参数和返回值(显然意味着它的方法的参数和返回值)将是非-nullable,因此检查 null 是多余的。
如果builder
参数实际上可以为空,您可以使用@Nullable
对其进行注释,以覆盖您使用@NonNullApi
建立的包默认值.
关于java - @NonNullApi 是否涵盖静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59402675/