escribí una anotación personalizada que contiene los metadatos de una propiedad y un AnnotationProcessor
:Java 6 - procesador de anotación y el código Además
@SupportedAnnotationTypes({"<package>.Property"})
public class PropertyProcessor extends AbstractProcessor {
@Override
public boolean process(Set<? extends TypeElement> annotations,
RoundEnvironment roundEnv) {
// Get messager object
Messager messager = processingEnv.getMessager();
// Iterate through the annotations
for(TypeElement typeElement : annotations) {
// Iterate through the annotated elements
for(Element element : roundEnv.getElementsAnnotatedWith(typeElement)) {
// Get Property annotation
Property property = element.getAnnotation(Property.class);
}
}
return false;
}
}
Aquí es la cuestión, he utilizado Javassist antes, pero fue en función del cargador de clases y creo que no es apropiado para aplicaciones OSGi. Quiero cambiar el bytecode generado cuando se compila una clase con la anotación Property
.
una pregunta: ¿por qué es necesario? ¿No se puede lograr de otra manera? – Bozho
sin utilizar APT o esta API, tendré que anotar los métodos setter y getter para cada propiedad, pero si esto funciona, tendré un control total sobre cómo se generará el código. esta no es una pregunta comercial pura, quiero saber si esto es posible o no –