1. 对Class、Method、Field以及Constructor对象调用getAnnotation()方法,可以获得与对象关联的特定信息。该方法的一般形式如下:
<A extends Annotation> getAnnotation(Class<A> annoType)
其中,annoType是表示您感兴趣注解的Class对象。该方法返回对注解的一个引用,使用这个引用可以获取与注解成员关联的值。如果没有找到注解,该方法会返回null。如果注解的保留策略不是RUNTIME,就会出现这种情况。
自定义一个注解(需要注意的是注解的保留策略)
import java.lang.annotation.*; import java.lang.reflect.*; // An annotation type declaration. @Retention(RetentionPolicy.RUNTIME) @interface MyAnno { String str(); int val(); }
自定义一个类Meta(注意获取注解成员属性的方法)
class Meta { // myMeth now has two arguments. @MyAnno(str = "Two Parameters", val = 19) public static void myMeth(String str, int i) { Meta ob = new Meta(); try { Class<?> c = ob.getClass(); // Here, the parameter types are specified. Method m = c.getMethod("myMeth", String.class, int.class); MyAnno anno = m.getAnnotation(MyAnno.class); System.out.println(anno.str() + " " + anno.val()); } catch (NoSuchMethodException exc) { System.out.println("Method Not Found."); } } public static void main(String args[]) { myMeth("test", 10); } }
2. 获取所有注解
可以获取与某个条目关联的具有RUNTIME保留策略的所有注解,具体方法是为该条目调用getAnnotations()方法。该方法的一般形式如下:
Annotation[ ] getAnnotations( )
上述方法返回一个注解数组。
这里说明下,因为想要获取业务日志,所以当初的想法是利用AOP获取相应方法的注解,然后注解中描述业务操作信息,但是因为在业务层中添加注解的话,一个业务操作可能涉及多个表的信息,无法准确知道具体的变化的信息,而且还无法判断事务是否一定完成。关于业务日志的还没有好的解决方案。
相关推荐
通过反射获取注解的属性值 1、获取类上注解的值 1.1 定义注解类 1.2 定义使用注解的类 1.3 测试类 1.4 测试结果 2、获取属性变量上注解的值 2.1 定义注解类 2.2 定义使用注解的类 2.3 定义测试类 2.4 测试结果 3、...
利用反射获取requestMapping注解的value,springMvc实现路径映射功能的逻辑
下面小编就为大家带来一篇浅谈Java自定义注解和运行时靠反射获取注解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
自定义注解和通过反射获取注解
简单demo,导入即可运行。
java 通过反射获取类上注解,方法上注解,注解里的值及方法参数,项目为maven项目。导入时记得选择maven项目
java 利用反射获取内部类静态成员变量的值操作.docx
利用反射,注解将数据输出至Excel中 亲测可用 运行良好
介绍如何利用反射和注解去简单的模拟JUnit4单元测试的使用,之所以选择JUnit4是因为4.0以后最大的改进就是使用了注解。需要注意的是这里并不是完全的模拟,只是简单实现了一下Runner类和JUnit注解相关的工作流程。...
利用反射获取.net托管的DLL或EXE文件的内部信息,包括DLL或EXE文件内部的模块、类、方法、字段等信息。
下面小编就为大家带来一篇Java 自定义注解及利用反射读取注解的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
首先来看看使用反射来获取注解名: 只需在获取class后调用getAnnotation方法即可,如下 这里是获取JPA映射b表名,Table.class,使用下面这个可以获取表名 import javax.persistence.Table; annotation.name() 这里...
主要介绍了java 注解annotation的使用以及反射如何获取注解的相关资料,需要的朋友可以参考下
利于学习注解和反射知识
1. 利用注解、反射和工厂模式设计一个简单的IoC容器 2. 该IoC容器包含3个注解和一个IoC容器类(AnnotationConfigApplicationContext),其定义如下: 注解 含义 @Component 标注Bean @Autowired 标注需要被注入的...
利用反射机制动态获取对象属性名称及数据类型 利用反射机制动态获取对象属性名称及数据类型 利用反射机制动态获取对象属性名称及数据类型 利用反射机制动态获取对象属性名称及数据类型 利用反射机制动态获取对象属性...
Java利用反射获取类信息
NULL 博文链接:https://lunzi.iteye.com/blog/1675871
自己用反射和注解写的一个android小框架 简单实用 不用再一个一个findViewById了 利用反射和注解只需要一句话初始化所有组件 强大
《利用反射技术处理自定义注解》的设计与实现 AnnotationPrj,具体分annotation、deal、domain、test、util四个层来实现