jueves
feb242005
Curiosa incompatibilidad entre el JDK 1.5 y todos los anteriores
jueves, febrero 24, 2005 at 4:45PM
A raíz de este interesante post de Javalobby que reflexiona sobre el mito "WORA, Write Once Run Anyware" me he enterado de una curiosa incompatibilidad entre el JDK 1.5 y todos los anteriores, y no se trata de la inevitable inclusión de nuevas palabras reservadas.
Se debe al uso de generics, más concretamente a que ahora la interfaz Comparable ha sido hecha generic, y ahora, por ejemplo, la clase java.math.BigDecimal incrementa la interfaz Comparable<BigDecimal>. Como consecuencia sólo es posible comparar un BigDecimal con otro objeto del mismo tipo empleando el método .compareTo(), mientras que en los JDK anteriores no habría problema en realizar la comparación con cualquier otro objeto, comparación que obviamente devolverá un valor false siempre que el objeto fuese de un tipo distinto a BigDecimal, pero que no generaría ningún tipo de error al compilar o al ejecutar.
Cualquiera que llegue un tiempo trabajando con Java sabe que "WORA" no se cumple al cien por cien, ¿alguien se anima a comentar alguna otra pifia con la que él se haya topado que provocase que se rompiera la compatibilidad hacia atrás de una versión a otra de la plataforma?.
Se debe al uso de generics, más concretamente a que ahora la interfaz Comparable ha sido hecha generic, y ahora, por ejemplo, la clase java.math.BigDecimal incrementa la interfaz Comparable<BigDecimal>. Como consecuencia sólo es posible comparar un BigDecimal con otro objeto del mismo tipo empleando el método .compareTo(), mientras que en los JDK anteriores no habría problema en realizar la comparación con cualquier otro objeto, comparación que obviamente devolverá un valor false siempre que el objeto fuese de un tipo distinto a BigDecimal, pero que no generaría ningún tipo de error al compilar o al ejecutar.
Cualquiera que llegue un tiempo trabajando con Java sabe que "WORA" no se cumple al cien por cien, ¿alguien se anima a comentar alguna otra pifia con la que él se haya topado que provocase que se rompiera la compatibilidad hacia atrás de una versión a otra de la plataforma?.
in
j2se
j2se 
Reader Comments