• Java 自定义注释@interface的用法


    最简单的待校验的注解定义

    @Documented
    @Constraint(validatedBy = ExistBlankByListValidator.class)
    @Target({PARAMETER})
    @Retention(RUNTIME)
    public @interface ExistBlankByList {
        String message() default "{annotation.ExistBlankByList.message}";
    
        Class<?>[] groups() default {};
    
        Class<? extends Payload>[] payload() default {};
    }
    
    public class ExistBlankByListValidator implements ConstraintValidator<ExistBlankByList, List> {
        private String msg = "";
    
        @Override
        public void initialize(ExistBlankByList existBlankByList) {
            msg = existBlankByList.message();
        }
    
        @Override
        public boolean isValid(List value, ConstraintValidatorContext context) {
            if (null == value) {
                return false;
            }
            return value.stream().noneMatch(StringUtils::isEmpty);
        }
    }
    Target值
    public enum ElementType {  
         TYPE, // 指定适用点为 class, interface, enum  
         FIELD, // 指定适用点为 field  
         METHOD, // 指定适用点为 method  
         PARAMETER, // 指定适用点为 method 的 parameter  
         CONSTRUCTOR, // 指定适用点为 constructor  
         LOCAL_VARIABLE, // 指定使用点为 局部变量  
         ANNOTATION_TYPE, //指定适用点为 annotation 类型  
         PACKAGE // 指定适用点为 package  
    } 
    Retention值
    public enum RetentionPolicy {  
         SOURCE, // 编译器处理完Annotation后不存储在class中  
         CLASS, // 编译器把Annotation存储在class中,这是默认值  
         RUNTIME // 编译器把Annotation存储在class中,可以由虚拟机读取,反射需要  
    } 
  • 相关阅读:
    读写分离
    使用xtrabackup对不同版本的mysql进行备份还原
    tomcat开启管理页面
    面试简单整理之rabbitmq
    面试简单整理之zookeeper
    面试简单整理之mybatis
    面试简单整理之spring、spring mvc
    面试简单整理之Redis
    记一次菜鸟的惊心动魄(另求原因和说明)
    面试简单整理之IO
  • 原文地址:https://www.cnblogs.com/fqybzhangji/p/10369715.html
Copyright © 2020-2023  润新知