当前位置:  开发笔记 > 编程语言 > 正文

Java注释返回神秘的类名

如何解决《Java注释返回神秘的类名》经验,为你挑选了1个好方法。

我对Java有点新,所以也许我误解了java中注释的用例.我的问题如下:

在注释方法之后,我在检查方法的注释时会收到诸如$ Proxy31的类名.我很好奇为什么我收到的类似于我的注释的类名,以及我可以做些什么来解决这个问题.

Method m = this.remoteServiceClass.getMethod(rpcRequest.getMethod().getName());
RequiredPermission a = m.getAnnotation(RequiredPermission.class);

这会返回一个null注释,即使我知道它正在查找的方法已经实现了RequiredPermission注释.

for(Annotation a : m.getAnnotations())
{
    System.out.println(a.getClass().getName());
}

这将打印出$ Proxy31类名.



1> Jherico..:

给定Annotation a,您需要调用annotationType(),而不是getClass()来确定注释的类型.Annotation对象只是一个代理,表示该类上的注释实例.

Object o = ...;
Class c = o.getClass();
Annotation[] as = c.getAnnotations();
for (Annotation a : as) {
   // prints out the proxy class name
   System.out.println(a.getClass().getName());
   // prints out the name of the actual annotation
   System.out.println(a.annotationType().getName());
}

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有