博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 自定义注释@interface的用法
阅读量:6711 次
发布时间:2019-06-25

本文共 1351 字,大约阅读时间需要 4 分钟。

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

@Documented@Constraint(validatedBy = ExistBlankByListValidator.class)@Target({PARAMETER})@Retention(RUNTIME)public @interface ExistBlankByList {    String message() default "{annotation.ExistBlankByList.message}";    Class
[] groups() default {}; Class
[] payload() default {};}public class ExistBlankByListValidator implements ConstraintValidator
{ 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中,可以由虚拟机读取,反射需要  }

 

转载于:https://www.cnblogs.com/fqybzhangji/p/10369715.html

你可能感兴趣的文章
Linux下安装Hadoop(伪分布模式)
查看>>
Android UI设计准则
查看>>
IntelliJ IDEA 2017.3.1 使用手册
查看>>
互联网协议入门(2)
查看>>
DataSource的可配参数有哪些,有哪些DataSource可以用
查看>>
免费的后台管理界面框架
查看>>
本地文件共享服务(nfs samba ftp)
查看>>
scp通过代理proxy传输文件
查看>>
excel 打开时报“发现不可读的内容...”
查看>>
pandas-利用python进行数据分析
查看>>
数据段、代码段、堆栈段、BSS段的区别
查看>>
Apache Bench
查看>>
WebService之Axis2快速入门(5): 管理会话(Session)
查看>>
以太坊RPC接口使用
查看>>
普通html标签<form>和struts2<s:form>的区别
查看>>
安装NTFS For Mac时显示文件已损坏怎么办
查看>>
-webkit-line-clamp实现多行文字溢出隐藏显示省略号
查看>>
Sublime Text 3 - 设置自动换行
查看>>
nil / Nil / NULL / NSNull in Objective-C
查看>>
iphone系统架构以及各层提供的主要服务
查看>>