自定义注解类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

自定义注解和注解的相关使用相关推荐

  1. 深入理解Java:注解(Annotation)基本概念、自定义注解、注解解析器

    深入理解Java:注解(Annotation)基本概念 什么是注解(Annotation): Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadat ...

  2. 【Spring 基础注解】对象创建相关注解、注入相关注解、注解扫描详解

    Spring 基础注解(2.x) 注解基础概念 注解的作用 Spring 注解的发展历程 对象创建相关注解 @Component @Repository.@Service.@Contoller @Sc ...

  3. 【Java 注解】自定义注解 ( 使用注解实现简单测试框架 )

    文章目录 一.定义注解 二.使用注解 三.解析注解 在 [Java 注解]自定义注解 ( 注解属性定义与赋值 ) 博客中讲解了 注解属性 ; 在 [Java 注解]自定义注解 ( 元注解 ) 博客中讲 ...

  4. 【Java 注解】自定义注解 ( 元注解 )

    文章目录 一.元注解 二.常用的元注解类型 三.@Target 元注解 四.@Retention 元注解 五.@Documented 元注解 六.@Documented 元注解 一.元注解 元注解 是 ...

  5. 自定义hibernate validation注解

    效果和优点 先看最后效果: public class UserEntity {@Password private String password;@Emailprivate String email; ...

  6. java 自定义注解_Java注解

    前言 近日在阅读开源项目,发现项目里好多奇奇怪怪的注解(@DataScope.@Log...)看得我一脸懵,不知道大家是否也有过这样的经历,回想了一下,发现自己对于注解的知识,好像只停留在@Overr ...

  7. java 多重注解_Java注解-元数据、注解分类、内置注解和自定义注解

    大家好,我是乐字节的小乐,上次说过了Java多态的6大特性|乐字节,接下来我们来看看Java编程里的注解. Java注解有以下几个知识点:元数据 注解的分类 内置注解 自定义注解 注解处理器 Serv ...

  8. java注解_Java注解教程及自定义注解

    Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容.在这个教程当中,我们将学习Java的注解,如何定制注解,注解的使用以及如何通过反射解析注解. Java1.5引入了注解,当前许 ...

  9. 注解java_Java注解教程及自定义注解

    Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容.在这个教程当中,我们将学习Java的注解,如何定制注解,注解的使用以及如何通过反射解析注解. Java1.5引入了注解,当前许 ...

  10. return error怎么定义_这一次搞懂Spring自定义标签以及注解解析原理

    自定义标签解析原理 在上一篇分析默认标签解析时看到过这个类DefaultBeanDefinitionDocumentReader的方法parseBeanDefinitions:拉勾IT课小编为大家分解 ...

最新文章

  1. 【错误记录】Manifest 清单文件报错 ( ..required to specify an explicit value for `android:exported` when the .. )
  2. P4568 [JLOI2011]飞行路线 P2939 [USACO09FEB]改造路Revamping Trails
  3. flash activex java_Adobe flash player ActiveX和NPAPI和PPAPI 这三个软件有什么区别?
  4. c语言手写指针和乘号,C-学会使用指针(示例代码)
  5. 小朋友排队|2014年蓝桥杯B组题解析第十题-fishers
  6. CI框架取消index.php
  7. 29/07/2010 sunrise
  8. Python - Excel文件与CSV文件相互转化
  9. 初解禁:SDK服务端主程序入口函数SDK服务端主程序入口函数
  10. 编写react组件_如何编写第一个React.js组件
  11. ortp流媒体协议 [1]
  12. 将一个对象相同的属性(不区分大小写)赋值给一个新对象 DataTable的一个简单的扩展...
  13. 树莓派pico从零开始的入门(一)
  14. 超文本标记语言是指Java_超文本标记语言(HTML)
  15. Py网络编程及应用(urllib、socket/selectors)
  16. 11月更新!一口气上线20+新功能,3D架构拓扑图更具趣味性
  17. 算法设计与分析基础 第六章谜题
  18. 百度闪电算法什么时间开始
  19. Tolua使用笔记三:Tolua协程用法
  20. easyui combobox、validatebox、datebox必选、禁用、可用问题

热门文章

  1. CentOS Linux解决Device eth0 does not seem to be pres
  2. 2 BeeGo 参数配置与路由配置
  3. 如何通过OWA登录界面修改域用户的密码
  4. gulp教程之gulp-minify-css
  5. WiFi音箱在国内普及需解决的三点
  6. 流式计算之Storm简介
  7. Linux进程线程学习笔记
  8. 【笔记】gradle命令行运行任务如何设置代理模式
  9. java如何查看jar编译的jdk版本
  10. 【代码优化】方法签名及参数检查