Estoy tratando de crear una anotación para una variable local. Yo sé que no puedo retener la anotación en el código de bytes generado, pero debería ser capaz de tener acceso a la información en tiempo de compilación haciendo algo como esto: solamente¿Cómo puedo crear un procesador de anotación que procese una variable local?
@Target({ElementType.LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface Junk {
String value();
}
, esto no se procesan por apt, o javac cuando especifico un ProcessorFactory que tiene "basura" en los tipos es compatible con lo siguiente:
class JunkTester {
public static void main(String[] args) {
@Junk String tmp = "Hello World";
System.out.println(tmp);
}
}
será sin embargo trabajar cuando muevo la anotación @Junk antes public static
Pensamientos y o soluciones?
curious: ¿qué quieres hacer con las variables locales anotadas con @Junk? – irreputable
@Junk es obviamente solo un ejemplo, pero eventualmente me gustaría hacer la generación de código a partir de la anotación real. – apg
sí, pero si lo haces, estás manipulando código dentro del método, ¿verdad? eso parece bastante difícil en el procesador de anotaciones. – irreputable