当前位置: 代码迷 >> J2SE >> 怎么获取一个方法上面声名的Annotation名字
  详细解决方案

怎么获取一个方法上面声名的Annotation名字

热度:158   发布时间:2016-04-24 01:40:18.0
如何获取一个方法上面声名的Annotation名字
比如我有以下的一个方法

@Overwrite
public String toString() {
  return "";
}

我现在想要做的事情是如何能获取到"Overwrite"这个值.纠结很久了.希望大哥们帮帮小弟.
因为现在做的项目日本那面把数据库事务开关.封装成了一个Annotation .要开事务的时候
只要在方法上加一个注解就可以了.我想知道他怎么实现的.

------解决方案--------------------
Overwrite这类的注解是没办法获取的,因为他不是@Retention(RetentionPolicy.RUNTIME)的,所以在运行期间是没办法获取到的。但是如果注解是@Retention(RetentionPolicy.RUNTIME)的,那么就可以获取到。代码如下:

Java code
public static void main(String[] args)throws Exception {        Class c = Class.forName("test.T");        Method method = c.getDeclaredMethod("say", new Class[]{});        Annotation[] as = method.getAnnotations();        for(Annotation a : as){            System.out.println(a.annotationType().getSimpleName());        }    }
------解决方案--------------------
一个系统是没有办法解释自身的,必须借助外面的系统来描述自身,也就是说任何一个系统都不是完备的, 如果它完备,它就是自相矛盾的。
  相关解决方案