通过自定义注解、继承方式统一处理参数校验,避免大量重复代码校验
第一步:自定义个注解,定义参数校验规则
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
@Documented
@Retention(RUNTIME)
@Target(FIELD)
public @interface VoCheck {
String zh() default ""; // 返回中文
boolean require() default false; // 必填校验
}
第二部:定义实体类,用于拦截节点信息
public class CheckDto {
}
第三部:定义校验工具,本次仅简单实现
public static void checkFiled(CheckDto dto) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
Field[] fields = dto.getClass().getDeclaredFields();