다음과 같은 사용자 정의 주석이 있습니다.Java Annotation Element Method return
@customelement(folder = "/path/")
public testMethod() {
}
아래의 AbstractProcessor를 사용하여 폴더 값, 즉 "/ path /"를 어떻게 추출 할 수 있습니까?
public class CompileTimeAnnotationProcessor extends AbstractProcessor {
@Override
public boolean process(Set<? extends TypeElement> annotations,
RoundEnvironment roundEnv) {
Set<? extends Element> elements = roundEnv.getElementsAnnotatedWith(CustomAnnotation.class);
for(Element te : elements){
for (Element e : te.getEnclosedElements()) {
if (e.getSimpleName().toString().equals("folder")) {
//Here fetch method return value
}
}
}
return true;
}
}
사용자 정의 주석 처리기를 만들거나 런타임에 값을 반영하고 싶습니까? 그것이 전자의 경우, 어떻게 컴파일하고 있습니까? 필자는 ['JavaCompiler'] (http://docs.oracle.com/javase/7/docs/api/javax/tools/JavaCompiler.html)를 사용하여 소스를 컴파일 할 때 주석 프로세서를 보거나 사용했습니다. – Makoto
@Makoto 표준 javac 컴파일 중에 주석 처리를 활성화하고 구성하려면 적절한 인수 (-proc, -processorpath, -s, -processor 참조)로 javac 컴파일러를 실행할 수 있습니다. 나는 이것이 주석 프로세서를 사용하는 전형적인 방법이라고 생각한다. –