[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Extensión de javac
- To: mindfood@xxxxxxxxxxxxxxx
- Subject: Extensión de javac
- From: Jose San Leandro <jose.sanleandro@xxxxxxxxxxxx>
- Date: Tue, 16 Nov 2004 12:29:18 +0100
- Delivered-to: mailing list mindfood@orange-soft.com
- Delivered-to: moderator for mindfood@orange-soft.com
- Mailing-list: contact mindfood-help@orange-soft.com; run by ezmlm
- Organization: Ventura24
- User-agent: KMail/1.7.1
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/