自定义注解和注解的相关使用
自定义注解类MyAnnotation
1 package lltse.base.annotationdemo; 2 3 import java.lang.annotation.Retention; 4 import java.lang.annotation.RetentionPolicy; 5 6 //编译器将把注释记录在类文件中,在运行时 VM 将保留注释,因此可以反射性地读取。 7 @Retention(value=RetentionPolicy.RUNTIME) 8 public @interface MyAnnotation 9 { 10 //可以设置默认值,调用的时候即可不写此属性 11 String name() default "zhangsan"; 12 13 //int 类型 14 //int age(); 15 16 //value 17 //int value(); 18 19 //数组 20 int [] value(); 21 22 }
自定义注解类Table
1 package lltse.base.annotationdemo; 2 3 import java.lang.annotation.Retention; 4 import java.lang.annotation.RetentionPolicy; 5 6 //RetentionPolicy.RUNTIME 编译器将把注释记录在类文件中,在运行时 VM 将保留注释,因此可以反射性地读取。 7 //RetentionPolicy.CLASS 编译器将把注释记录在类文件中,但在运行时 VM 不需要保留注释。这是默认的行为。 8 //RetentionPolicy.SOURCE 编译器要丢弃的注释。 9 10 @Retention(RetentionPolicy.RUNTIME) 11 public @interface Table 12 { 13 /*当此处的属性值仅有一个,且名称为value的时候。 14 调用此注解的时候不需要用value= 只需标出值即可。如:Table("tb_person")*/ 15 //String value(); 16 17 String name(); 18 19 }
自定义注解的使用Student
1 package lltse.base.annotationdemo; 2 3 //@MyAnnotation(name="lisi") 4 //@MyAnnotation(age=30) 5 //@MyAnnotation(30) 6 @MyAnnotation({14,29,40}) 7 public class Student 8 { 9 private int num; 10 11 public int hashCode() 12 { 13 return num; 14 } 15 16 public boolean equals(Object o) 17 { 18 return true; 19 } 20 }
自定义注解的使用PersonEntity
1 package lltse.base.annotationdemo; 2 3 @Table(name="db_person") 4 public class PersonEntity 5 { 6 private String cardId; 7 8 private String sex; 9 10 public String getCardId() { 11 return cardId; 12 } 13 14 public void setCardId(String cardId) { 15 this.cardId = cardId; 16 } 17 18 public String getSex() { 19 return sex; 20 } 21 22 public void setSex(String sex) { 23 this.sex = sex; 24 } 25 26 27 }
自定义注解的测试类AnnotationDemo
1 package lltse.base.annotationdemo; 2 3 import java.util.Arrays; 4 5 public class AnnotationDemo { 6 7 /** 8 * @param args 9 */ 10 public static void main(String[] args) 11 { 12 /*此处演示的是得到类的注解信息。 13 获取方法的注解和获取类的注解方式类似,先通过反射获取方法。 14 然后通过方法的getAnnotation获取方法的注解*/ 15 Class clazz = Student.class; 16 MyAnnotation myAnnotation = (MyAnnotation)clazz.getAnnotation(MyAnnotation.class); 17 //myAnnotation.name()此处获取的值为注解定义设置的默认值 18 //System.out.println(" name:>>>>"+myAnnotation.name()); 19 //System.out.println(" age:>>>>"+myAnnotation.age(); 20 //System.out.println(" value:>>>>"+myAnnotation.value(); 21 System.out.println(" value:>>>>"+Arrays.toString(myAnnotation.value())); 22 23 24 //Spring data jpa中即用这种注解方式。需要将表名获取作为条件使用 25 Class personClazz = PersonEntity.class; 26 Table table = (Table)personClazz.getAnnotation(Table.class); 27 System.out.println("Table name:>>>"+table.name()); 28 29 30 } 31 32 }
转载于:https://www.cnblogs.com/lltse/p/5463976.html
自定义注解和注解的相关使用相关推荐
- 深入理解Java:注解(Annotation)基本概念、自定义注解、注解解析器
深入理解Java:注解(Annotation)基本概念 什么是注解(Annotation): Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadat ...
- 【Spring 基础注解】对象创建相关注解、注入相关注解、注解扫描详解
Spring 基础注解(2.x) 注解基础概念 注解的作用 Spring 注解的发展历程 对象创建相关注解 @Component @Repository.@Service.@Contoller @Sc ...
- 【Java 注解】自定义注解 ( 使用注解实现简单测试框架 )
文章目录 一.定义注解 二.使用注解 三.解析注解 在 [Java 注解]自定义注解 ( 注解属性定义与赋值 ) 博客中讲解了 注解属性 ; 在 [Java 注解]自定义注解 ( 元注解 ) 博客中讲 ...
- 【Java 注解】自定义注解 ( 元注解 )
文章目录 一.元注解 二.常用的元注解类型 三.@Target 元注解 四.@Retention 元注解 五.@Documented 元注解 六.@Documented 元注解 一.元注解 元注解 是 ...
- 自定义hibernate validation注解
效果和优点 先看最后效果: public class UserEntity {@Password private String password;@Emailprivate String email; ...
- java 自定义注解_Java注解
前言 近日在阅读开源项目,发现项目里好多奇奇怪怪的注解(@DataScope.@Log...)看得我一脸懵,不知道大家是否也有过这样的经历,回想了一下,发现自己对于注解的知识,好像只停留在@Overr ...
- java 多重注解_Java注解-元数据、注解分类、内置注解和自定义注解
大家好,我是乐字节的小乐,上次说过了Java多态的6大特性|乐字节,接下来我们来看看Java编程里的注解. Java注解有以下几个知识点:元数据 注解的分类 内置注解 自定义注解 注解处理器 Serv ...
- java注解_Java注解教程及自定义注解
Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容.在这个教程当中,我们将学习Java的注解,如何定制注解,注解的使用以及如何通过反射解析注解. Java1.5引入了注解,当前许 ...
- 注解java_Java注解教程及自定义注解
Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容.在这个教程当中,我们将学习Java的注解,如何定制注解,注解的使用以及如何通过反射解析注解. Java1.5引入了注解,当前许 ...
- return error怎么定义_这一次搞懂Spring自定义标签以及注解解析原理
自定义标签解析原理 在上一篇分析默认标签解析时看到过这个类DefaultBeanDefinitionDocumentReader的方法parseBeanDefinitions:拉勾IT课小编为大家分解 ...
最新文章
- 【错误记录】Manifest 清单文件报错 ( ..required to specify an explicit value for `android:exported` when the .. )
- P4568 [JLOI2011]飞行路线 P2939 [USACO09FEB]改造路Revamping Trails
- flash activex java_Adobe flash player ActiveX和NPAPI和PPAPI 这三个软件有什么区别?
- c语言手写指针和乘号,C-学会使用指针(示例代码)
- 小朋友排队|2014年蓝桥杯B组题解析第十题-fishers
- CI框架取消index.php
- 29/07/2010 sunrise
- Python - Excel文件与CSV文件相互转化
- 初解禁:SDK服务端主程序入口函数SDK服务端主程序入口函数
- 编写react组件_如何编写第一个React.js组件
- ortp流媒体协议 [1]
- 将一个对象相同的属性(不区分大小写)赋值给一个新对象 DataTable的一个简单的扩展...
- 树莓派pico从零开始的入门(一)
- 超文本标记语言是指Java_超文本标记语言(HTML)
- Py网络编程及应用(urllib、socket/selectors)
- 11月更新!一口气上线20+新功能,3D架构拓扑图更具趣味性
- 算法设计与分析基础 第六章谜题
- 百度闪电算法什么时间开始
- Tolua使用笔记三:Tolua协程用法
- easyui combobox、validatebox、datebox必选、禁用、可用问题