miércoles, 13 de julio de 2011

Procesamiento de anotaciones en Java

Hay un bug en la JVM de Sun Oracle que hace fallar el procesamiento de anotaciones. Me pasó que compilando el proyecto funcionaba OK, pero al agregar "-processor ....", aparecía el siguiente problema:


[javac] /...../ValidationCheck.java:25: incompatible types
[javac] found   : ......annotations.Type
[javac] required: ......Type
[javac] Type type() default Type.WORKER;

El problema es el Enum "Type". Este Enum existe y está en el classpath, pero javac "no la ve". Está definido de la siguiente manera:

Type type() default Type.WORKER;

La solución para zafar de este bug es introducir el paquete en el nombre del Enum, de manera que quede:

Type type() default my.package.annotations.Type.WORKER;


Y con eso compila!

BUGhttp://bugs.sun.com/view_bug.do?bug_id=6512707

No hay comentarios: