空值标记(@NonNull @NonNullApi @NonNullFields @Nullable)

Exisi 2022-06-28 08:17:56
Categories: Tags:
  • 空值标记 用于标记代码中的变量、参数、方法或类是否可以为null。它本身并不能校验空值,而是提供了一种编译时检查的机制,可以在代码编译时检测到可能存在的空指针异常,并在代码编写期间高亮警告。可以帮助开发人员更早地发现潜在的空指针异常问题

 

  • Spring 中有以下空值标记注解,注解均无参数

校验注解

说明

@NonNull

指示的目标对象不能为 null,用于注解方法,参数以及变量。

如果为 null 则会抛出 NullPointerException 异常。

@NonNullApi

指定的参数和方法返回值默认不能为 null,用于包(Package)级别注解

在文 package-info.java 中使用

@NonNullFields

指示的变量不能为 null,用于包(Package)级别注解

在文件 package-info.java 中使用

@Nullable

指示的目标对象可以为 null,可用于注解方法,参数以及变量 。

若是与 @NonNullApi @NonNullFields 共用,会被覆盖

示例

public class User(){

 

//标记属性不可以为空

@NonNull

private String name;

 

//标记参数不可以为 null

public boolean isBlank(@NonNull String name){
    return
name == null;
}

 

//标记返回值不可以为 null

@NonNull

public String getName(){

return name;

}

}

示例

public class User(){

 

//标记属性不可以为空

@Nullable

private String name;

 

//标记参数不可以为 null

public boolean isBlank(@Nullable String name){
    return
name == null;
}

 

//标记返回值不可以为 null

@Nullable

public String getName(){

return name;

}

}

 

  • 使用 @NonNullApi @NonNullFields 注解,首先需要新建文件(文件名package-info.java

示例

//参数和方法返回值默认不能为 null

@NonNullApi

//所有变量不能为 null

@NonNullFields

 

package sfw.xumt.springdemo;

 

import org.springframework.lang.NonNullApi;

import org.springframework.lang.NonNullFields;