Categorías: Noticias

Novedades en Java 7

Aunque todavía queda un poco para el lanzamiento de la versión estable de Java 7 (ahora mismo si no me equivoco están en la actualización 17 de Java 6), aquí os traigo una serie de mejoras que va a incorporar y que podéis ya probar a través del JDK 7 Early Access.

La recopilación de las mejoras ha salido publicada en el blog tecnológico de JoeJag (en inglés) y aquí os la dejo traducida:

Soporte mejorado para colecciones

A partir de ahora las colecciones podrán declararse al estilo de Ruby o Perl. En lugar de tener que hacer:
List list = new ArrayList();
list.add("item");
String item = list.get(0);

Set set = new HashSet();
set.add("item");

Map map = new HashMap();
map.put("key", 1);
int value = map.get("key");

Se podrá hacer directamente:
List list = ["item"];
String item = list[0];

Set set = {"item"};

Map map = {"key" : 1};
int value = map["key"];

Manejo automático de recursos

Algunos recursos como InputStream, Writers, Sockets o clases relacionadas con Sql, tienen que ser ser cerrados manualmente en cada utilización, por ejemplo:
BufferedReader br = new BufferedReader(new FileReader(path));
try {
return br.readLine();
} finally {
br.close();
}

Sin embargo, a partir de ahora, automáticamente podremos hacer:
try (BufferedReader br = new BufferedReader(new FileReader(path)) {
return br.readLine();
}

O si tenemos más de un recurso:
try (
InputStream in = new FileInputStream(src);
OutputStream out = new FileOutputStream(dest))
{
// código
}

Inferencia de tipos mejorada para creación genérica de instancias (operador diamante < >)

Si antes estábamos obligados a hacer:
Map> anagrams = new HashMap>();

Ahora simplemente:
Map> anagrams = new HashMap<>();

Barras bajas en literales numéricos

Porque los números grandes son complejos de leer sin problemas:
int un_millon= 1_000_000;

Cadenas para la clausula switch

Posiblemente el más esperado de todos (hasta ahora sólo los tipos enum y números podían ser utilizados en los switch). Ya podremos hacer directamente:
String s = ...
switch(s) {
case "linuxhispano":
llamar(w);

case "web":
case "internet":
procesar(w);
break;

case "foo":
procesarfoo(s);
// fall-through

default:
demas(s);
break;
}

Binarios literales

Utilizando el prefijo 0b (es un cero ‘0’ no una o), podremos representar directamente enteros en formato binario:
int binary = 0b1001_1001;

Simplificación de la invocación de métodos con argumentos variables

Si hasta ahora el compilador emitía warning en el lugar de la llamada al método, ahora lo hará en el de la declaración del mismo para facilitar la labor a los desarrolladores.

F. Javier Carazo Gil

Cofundador de CODECTION, empresa especializada en WordPress, autor de un libro sobre WordPress (el primero en español) y multitud de artículos (en medios físicos y virtuales) sobre el tema. Participa en la comunidad WordPress de forma activa siendo parte del equipo organizador de la WordPress Meetup de Córdoba, dando charlas en diferentes WordCamp y siendo autor y coautor de multitud de plugins libres y premium para WordPress de gran éxito.

Ver comentarios

  • Que bueno estas mejoras para Java :).
    Son útiles...y ya era hora que se actualice y abra un poco mas... falta tocar/mejorar Swing y exploto de la emoción jajaja :D

    Muy bueno el post!

  • He leído por ahí, que por fin, habían mejorado el tema de fechas. ¿Sabes algo de ese tema?

Entradas recientes

DeepSeek

2 días hace

Contacto

2 semanas hace

Smart-tv mute

2 semanas hace

STEAM OS

3 semanas hace

2025

4 semanas hace

El podcast de Linux Hispano – #072 – El hardware libre debe consolidarse como el software libre

https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.

1 mes hace