[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Extensión de javac



Hola,

No sé si habréis tenido la oportunidad de echarle un vistazo a uno de los 
"must-have" de entre los habituales libros de Java, Effective Java, de Joshua 
Bloch. El libro es muy interesante.

En particular, el capítulo 3, que está disponible online [1],  analiza en 
profundidad los métodos de java.lang.Object (toString(), hashCode() y 
equals()), y que por tanto afectan a todas y cada una de las clases que se 
desarrollen. Adicionalmente, es recomendable leer los detalles del interfaz 
java.lang.Comparable.

Si echáis un vistazo al módulo de Jakarta llamado Commons-Lang [2], podréis 
ver que el paquete org.apache.commons.lang.builder [3] está enfocado 
precisamente a proporcionar mecanismos fáciles que permitan satisfacer las 
directrices de Effective Java, de una forma sencilla.

Por mi parte, he desarrollado un proyecto [4] que, antes de compilar, añade 
tales métodos, generados dinámicamente a partir de los datos del archivo 
fuente, utilizando Commons-Lang. Eso permite tener un mecanismo eficaz de 
generar estos métodos, sin preocuparse de los mismos.

En punto más débil es debido a que el proceso de compilación, en este caso, 
implica una copia de los archivos fuente a otro directorio (para poder 
modificarlos sin 
afectar al sistema de control de versiones), y por tanto conlleva más tiempo 
que la compilación habitual.

Un saludo,
Jose.

[1] http://developer.java.sun.com/developer/Books/effectivejava/Chapter3.pdf
[2] http://jakarta.apache.org/commons/lang
[3] 
http://jakarta.apache.org/commons/lang/api/org/apache/commons/lang/builder/package-summary.html
[4] http://maven.acm-sl.org/antlang/