How to Check References of Annotated Methods
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 ref开发者_JAVA技巧erences 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?Analysing bytecode will works! ASM for an example is handling annotation very well.
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.
Using the Reflections library, it's simple as:
Reflections reflections = new Reflections("my.package", new MethodAnnotationsScanner());
Set<Method> deprecated = reflections.getMethodsAnnotatedWith(Deprecated.class);
精彩评论