标签: java 自定义注解 判空
背景
自定义注解实现字段有条件的判空,例如Student有三个字段name、age、sex;name、age不能为空,sex只有当age=18时不能为空(可能例子不是很符合实际场景,只为实现说明)
代码实现
1、新建自动以注解类
基本元注解含义请自行学习@Target、@Retention、@Documented、@Inherited。本例@ConditionalNotEmpty注解有三个参数message、conditionFiledName、contionString,含义分别为错误提示信息、判断依据的字段名称、判断条件(如本例中如果age=18,则sex不能为空)。可以自行设置参数默认值,如果参数没有默认值则在使用注解时必须要明确传递参数值
package com.atguigu.springcloud.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ConditionalNotEmpty {
//错误提示信息
String message();
//判断依据的字段名称
String conditionFiledName() default "";
//判断条件,如本例中 18
String contionStri