Tôi đang cố gắng viết bộ xử lý Anntoation tùy chỉnh. Bộ xử lý chú thích sẽ xử lý từng tệp lớp tại thời gian biên dịch để kiểm tra chú thích, Nhưng làm thế nào để tôi có thể nhận được lớp mà nó hiện đang xử lý? Tôi chỉ có thể lấy tên lớp trong các mã sau đây.Bộ xử lý chú thích - Cách lấy Lớp đang xử lý
public class AnnotationProcessor extends AbstractProcessor {
......
@Override
public boolean process(Set<? extends TypeElement> annotations,
RoundEnvironment roundEnv) {
Set<? extends Element> rootE=roundEnv.getRootElements();
for(Element e: rootE) {
if(e.getKind()==ElementKind.CLASS) {
String className= e.getSimpleName().toString();
processingEnv.getMessager().printMessage(javax.tools.Diagnostic.Kind.WARNING,className, e);
}
}
}
Cảm ơn sự giúp đỡ của bạn: D – user1004413
Bạn nói "... có nhiều thông tin hơn về lớp đang được biên dịch chứ không phải tên của nó", nhưng làm thế nào để _do_ bạn có được tên lớp? – Matthias
Tên lớp sẽ có trong Element.getSimpleName() http://docs.oracle.com/javase/7/docs/api/javax/lang/model/element/Element.html#getSimpleName%28%29 –