Novedades del JDK 7

Hoy, revisando noticias atrasadas, he visto la de Dos Ideas, sobre “Lo Nuevo en el compilador del JDK 7” y, aunque sea una noticia que incluya “java” y “compilador” en una misma frase (xDDDD) las explica muuuuy bien.

Entre las que más me han gustado a mi hay de todo, funcionalidades nuevas y también cosillas que simplifican bastante la forma de trabajar con cosas que ya existían.

Voy a resaltar las que me han parecido más interesantes:

  • Switch sobre String
  • Gestión Automática de Recursos
  • Mejoras en los números (literales numéricos)
  • Soporte para Collections


Switch sobre String

Y ya era hora. Después de ver la cantidad de pijadas que se podía hacer con las Strings en java, me sorprendió mucho cuando fuí a echar mano de ésto y vi que no estaba implementado. Ya nos podemos olvidar de los if-then-else cuando dependamos de un dato metido como un String😉

Gestión Automática de Recursos

Otra gozada. ¿A que es un coñazo tener que andar cerrando los ficheros que abrimos? Pues con ésto lo tenemos solucionado, podemos acceder a recursos de forma que sólo tendrán vida de forma local, es decir, que cuando termine la parte en la que están declarados se esfumarán. Pero es que es esfumarán bien, en el caso de los ficheros se cerraran sin tener que pasar por todo el jaleo de guardar, cerrar, etc…

Se hace usando el try, podemos ver un ejempo sencillito aquí abajo:

<i><font face="monospace"> <span style="color: rgb(0, 0, 0); font-weight: bold;">static</span> <a href="http://www.google.com/search?hl=en&q=allinurl%3AString+java.sun.com&bntI=I%27m%20Feeling%20Lucky"><span style="color: rgb(170, 170, 221); font-weight: bold;">String</span></a> readFirstLineFromFile2<span style="color: rgb(102, 204, 102);">(</span><a href="http://www.google.com/search?hl=en&q=allinurl%3AString+java.sun.com&bntI=I%27m%20Feeling%20Lucky"><span style="color: rgb(170, 170, 221); font-weight: bold;">String</span></a> path<span style="color: rgb(102, 204, 102);">)</span> <span style="color: rgb(0, 0, 0); font-weight: bold;">throws</span> <a href="http://www.google.com/search?hl=en&q=allinurl%3AIOException+java.sun.com&bntI=I%27m%20Feeling%20Lucky"><span style="color: rgb(170, 170, 221); font-weight: bold;">IOException</span></a> <span style="color: rgb(102, 204, 102);">{</span><br />        <span style="color: rgb(0, 0, 0); font-weight: bold;">try</span> <span style="color: rgb(102, 204, 102);">(</span><a href="http://www.google.com/search?hl=en&q=allinurl%3ABufferedReader+java.sun.com&bntI=I%27m%20Feeling%20Lucky"><span style="color: rgb(170, 170, 221); font-weight: bold;">BufferedReader</span></a> br = <span style="color: rgb(0, 0, 0); font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&q=allinurl%3ABufferedReader+java.sun.com&bntI=I%27m%20Feeling%20Lucky"><span style="color: rgb(170, 170, 221); font-weight: bold;">BufferedReader</span></a><span style="color: rgb(102, 204, 102);">(</span><span style="color: rgb(0, 0, 0); font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&q=allinurl%3AFileReader+java.sun.com&bntI=I%27m%20Feeling%20Lucky"><span style="color: rgb(170, 170, 221); font-weight: bold;">FileReader</span></a><span style="color: rgb(102, 204, 102);">(</span>path<span style="color: rgb(102, 204, 102);">)</span><span style="color: rgb(102, 204, 102);">)</span> <span style="color: rgb(102, 204, 102);">{</span><br />           <span style="color: rgb(0, 0, 0); font-weight: bold;">return</span> br.<span style="color: rgb(0, 102, 0);">readLine</span><span style="color: rgb(102, 204, 102);">(</span><span style="color: rgb(102, 204, 102);">)</span>;<br />        <span style="color: rgb(102, 204, 102);">}</span><br /> <span style="color: rgb(102, 204, 102);">}</span></font></i><br />

Mola, ¿verdad? Pues pueden ser varios recursos separándolos con “;” dentro de la llamada al try.

Mejoras en los números

A parte de incluir el 0b para indicar valores numéricos en base binaria (int a = 0b11, será lo mismo que decir int a = 3) me ha gustado mucho la pijadita de poder separar los números de forma que sean más legibles, pero que el lenguaje los entienda como si no hubiera dicha separación, ¿ein? pues bien, ésto:

int telefono = 666_555_444;

es lo mismo que poner

int telefono = 666555444;

Pero es mucho más legible arriba, ¿verdad? Pues eso, que podemos separar un número en varios trozos usando el “_” como carácter de separación que el lenguaje ignorará completamente esas separaciones😀

Soporte para Collections

Otra ventaja muy notable. Hasta ahora, cuando queríamos trabajar con estructuras de datos de Collections lo hacíamos con un par de inconvenientes o incomodidaes, como queráis verlo.

De primeras si queríamos iniciar una lista, por ejemplo, con unos valores predeterminados teníamos que ir insertando esos elementos “a mano”. Ahora podemos hacer algo como ésto:

final List<Integer> listaNumeros = [1,2,3,4,5];

Igual que con los arrays. Y lo mismo se aplica para acceder a los elementos de la colección:

listaNumeros.get(0) puede ahora escribirse como listaNumeros[0], yo creo que ésta mejora si que la voy a aprovechar bastante😉

    • Leyer
    • 7/01/10

    Exelente! aunke esperaba un poco mas

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: