Un grupo de expertos de SUN Microsystems liderado por Josuah Bloch y Gilad Bracha han propuesto una serie de mejoras interesantes para la nueva versión del JDK. Lo curioso es que estas mejoras provienen de algunas de las características que diferencian a C# de Java, y es que parece que estos dos lenguajes están empeñados en complementarse. Veamos un poco más a fondo las mejoras:
-
Enumeraciones : Se propone el soporte de enumeraciones al más puro estilo de C/C++. La implementación ha de ser sencilla, potente y tener buen rendimiento. En su forma más simple sería algo del estilo:
public enum Suit clubs, diamonds, hearts, spades {}
No os fieis de esta sencillez, lo cierto es que la especificación que proponen es muy completa. La podéis ver más a fondo
en este enlace-
Autoboxing: Desde luego una de las cosas que un programador amaría en C# y que no hay en Java es la posibilidad de tratar tipos primitivos como si fueran referencias a objetos. El caso típico es añadir un primitivo ( int, double, etc.) a una Collection.
En
este enlace podéis ver todos los tipos de conversiones propuestos, que por otra parte eran los de esperar.
-
Mejoras para los bucles for : El objetivo de esta mejora es intentar hacer mucho más sencillo el recorrido de Collections a través de bucles for.
En
este enlace podéis encontrar la propuesta. No se que opinaréis vosotros, pero a mi lo que proponen me parece quizás un poco críptico. Desde luego si alguien lee el código:
for (String s : c)
...
{}
Es algo difícil darse cuenta de que estás iterando una colección y cogiendo los valores en el String s. Aunque quizás sea cuestión de costumbre :)
-
Importación estática de miembros: Se propone la importación automática de miembros y métodos estáticos utilizando el comando import, de un modo parecido al que se hace ahora con las clases. Por ejemplo, con:
import Math.abs;
import Math.round;
podríamos después llamar a los métodos sin anteponer el nombre de la clase:
return abs(11.23);
Un cambio bastante simple de realizar, aunque no parece aportar demasiado, lo cierto es que cuando tienes una clase con muchas constantes se echa de menos poder hacer un :
import Constantes.*;
Podéis ver el resto de esta propuesta
aquí.
Todo esto resume el contenido del
JSR-201, que acaba de ser propuesto y está pendiente de aprobación. ¿Qué opináis? ¿Es útil? ¿Son tonterías? ¿Lo aprobarán?