java 类,变量,方法上注解值的获取

原创 2018年04月16日 00:24:52

首先定义三个注解类, 分别适用于类,成员变量, 方法

[java] view plain copy
  1. @Target(ElementType.TYPE)  
  2. @Retention(RetentionPolicy.RUNTIME)  
  3. public @interface LeiMode {  
  4.     public int value() default 1;  
  5. }  

[java] view plain copy
  1. @Target(ElementType.FIELD)  
  2. @Retention(RetentionPolicy.RUNTIME)  
  3. public @interface FiledMode {  
  4.     public int value() default 1;  
  5. }  

[java] view plain copy
  1. @Target(ElementType.METHOD)  
  2. @Retention(RetentionPolicy.RUNTIME)  
  3. public @interface TreahMode {  
  4.     public int value() default 1;  
  5. }  

然后,定义一个类,使用了注解

[java] view plain copy
  1. @LeiMode(5)  
  2. public class AnnotationDemo {  
  3.       
  4.     @FiledMode(10)  
  5.     private int itest;  
  6.       
  7.     @TreahMode()  
  8.     private void test(){}  
  9. }  


1.获取类上的注解值

[java] view plain copy
  1. LeiMode annotation = AnnotationDemo.class.getAnnotation(LeiMode.class);  
  2. System.out.println(annotation.value());  


2.获取所有变量,并获取指定方法上的注解信息

[html] view plain copy
  1. Field[] fields = AnnotationDemo.class.getDeclaredFields();  
  2.         Field field = null;  
  3.         for(Field f : fields){  
  4.             if(f.getName().equals("itest")){  
  5.                 field = f;  
  6.                 break;  
  7.             }  
  8.         }  
  9.           
  10.         FiledMode annotation = field.getAnnotation(FiledMode.class);  
  11.         System.out.println(annotation.value());  


3.获取指定变量上的注解信息 

[java] view plain copy
  1. Field field = AnnotationDemo.class.getDeclaredField("itest");  
  2.         FiledMode annotation = field.getAnnotation(FiledMode.class);  
  3.           
  4.         System.out.println(annotation.value());  

4.获取所有方法,并获取指定方法上的注解信息

[java] view plain copy
  1. Method[] methods = AnnotationDemo.class.getDeclaredMethods(); //可以获取私有方法和公有方法, getMethods() 获取公有方法  
  2.         Method meth = null;  
  3.         for(Method method : methods){  
  4.             if(method.getName().equals("test")){  
  5.                 meth = method;  
  6.                 break;  
  7.             }  
  8.         }  
  9.         Annotation annotation = meth.getAnnotations()[0];  
  10.         TreahMode mode = (TreahMode) annotation;  
  11.         System.out.println(mode.value());  

5.获取指定方法上的注解信息

[java] view plain copy
  1. Method method = AnnotationDemo.class.getDeclaredMethod("test"null);//可以获取私有方法和公有方法  
  2.         System.out.println(method);  
  3.         Annotation[] annotations = method.getAnnotations();  
  4.         Annotation annotation = annotations[0];  
  5.         System.out.println(annotation);  
  6.           
  7.         TreahMode mode = (TreahMode) annotation;  
  8.         System.out.println(mode.value());  
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36838191/article/details/79955419

利用反射获取类或者方法或者字段上的注解的值

从JDK1.5之后,注解在各大框架上得到了广泛的应用。下面这个例子中,你可以判断一个类或者方法或者字段上有没有注解,以及怎么获取上面的注解值。话不多说,代码如下: AnnotationTest01.j...
  • zknxx
  • zknxx
  • 2016-05-26 23:34:32
  • 9466

android 自定义注解 通过反射获取注解属性值

1.自定义注解package cn.veji.hibernate.po; import java.lang.annotation.ElementType; import java.lang.an...
  • jing85432373
  • jing85432373
  • 2017-11-08 16:52:50
  • 320

Java获取类、方法、属性上的注解

获取某个类的注解有3个方法Class.getAnnotations()、Class.getAnnotation(Class< A > annotationClass)、Class.getDeclare...
  • u011983531
  • u011983531
  • 2017-04-28 21:03:15
  • 2927

获取类的方法上的所有方法上的注解

最近在加深注解这块的理解,很多框架都使用到了注解。 直接上代码: 注解的实现类 Anno.java package com.robot.test; import java.lang....
  • zhuhai__yizhi
  • zhuhai__yizhi
  • 2015-08-04 14:11:21
  • 3988

获取类的方法上的所有方法上的注解(二)

接着上面的例子,实现获取具体注解的值 Anno.java注解的实现类,这里加入了属性value,便于在使用的Anno注解的时候可以,如此使用@Anno("coding"),这里还设置了注解的...
  • zhuhai__yizhi
  • zhuhai__yizhi
  • 2015-08-04 14:20:28
  • 1340

AOP中获得自定义注解对象

1.自定义注解 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java...
  • gongzi2311
  • gongzi2311
  • 2016-03-02 17:19:09
  • 2143

Java 使用反射获取类、方法、属性上的注解

有的时候我们想使用反射获取某个类的注解、方法上的注解、属性上的注解。 下面是一个简单的例子。里面包括了上面提到的三个点。...
  • baidu_18607183
  • baidu_18607183
  • 2014-11-10 14:35:56
  • 8426

简单自定义Annotation和利用反射获取注解中的值

用一个简单例子 自定义注解: import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy;...
  • zxdfc
  • zxdfc
  • 2015-10-20 00:33:59
  • 3582

获取包下所有类中的注解的值 (java工具类)

作用:这个工具类主要的作用就是获取类中的注解的值。 应用场景:做权限的时候获取@RequestMapping();的值,自动添加到数据库中。/** * getRequestMappin...
  • tan_thinker
  • tan_thinker
  • 2016-07-18 19:06:00
  • 3811
收藏助手
不良信息举报
您举报文章:java 类,变量,方法上注解值的获取
举报原因:
原因补充:

(最多只允许输入30个字)