How to Check References of Annotated Methods

 ̄綄美尐妖づ 提交于 2020-01-03 03:49:05

问题


I'm trying to find a way to check my classes for references of methods with a particular annotation (think "Deprecated").

As far as i see it, analysing byte code won't work because it doesn't contain any annotations.
Using APT doesn't really help because i need the references to the methods, not the annotated methods themselves.

So, what options do i have?

The best i can come up with is compiling a list of the annotated methods followed by a full code analysis, checking every method call against the list.
Is there a way to do that efficiently in an eclipse plug-in or an ant task?


回答1:


Analysing bytecode will works! ASM for an example is handling annotation very well.




回答2:


In another question I asked for a Java parser of the Java language. For my analysis of code I use this one. Perhaps it's good for you, too.




回答3:


Using the Reflections library, it's simple as:

Reflections reflections = new Reflections("my.package", new MethodAnnotationsScanner());
Set<Method> deprecated = reflections.getMethodsAnnotatedWith(Deprecated.class);


来源:https://stackoverflow.com/questions/1681266/how-to-check-references-of-annotated-methods

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!