-2
任何人都可以给我提供一个简单的java注释处理器的代码片段,当它的处理方法被调用时它会打印“foo”。我在这已经工作了2天,我一直没能走到这一步Java AnnotationProcessor源代码
这里是我的代码:
public class ComplexityProcessor extends AbstractProcessor {
public ComplexityProcessor() {
super();
}
@Override
public boolean process(Set annotations,
RoundEnvironment roundEnv) {
String message = "annotation found in ";
processingEnv.getMessager().printMessage(javax.tools.Diagnostic.Kind.NOTE, message);
try {
JavaFileObject jfo = processingEnv.getFiler().createSourceFile("Foo");
BufferedWriter bw = new BufferedWriter(jfo.openWriter());
bw.append("Bar!!!");
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (Element elem : roundEnv.getElementsAnnotatedWith(Complexity.class)) {
Complexity complexity = elem.getAnnotation(Complexity.class);
message = "annotation found in " + elem.getSimpleName()
+ " with complexity " + complexity.value();
processingEnv.getMessager().printMessage(javax.tools.Diagnostic.Kind.NOTE, message);
try {
JavaFileObject jfo = processingEnv.getFiler().createSourceFile("Foo");
BufferedWriter bw = new BufferedWriter(jfo.openWriter());
bw.append("Bar!!!");
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return true; // no further processing of this annotation type
}
你的代码在哪里? – Jeffrey 2012-04-09 14:33:07
[堆栈溢出不是代码编写,教程或咨询服务](http://meta.stackexchange.com/a/128553/172496) – 2012-04-09 14:39:34
在这里你可以找到[教程](http://www.javalobby。组织/ JAVA /论坛/ t17876.html)。 – dash1e 2012-04-09 14:40:21