Hasta que he empezado a trabajar en mi nueva empresa, nunca me había dado de las novedades en el lenguaje en Java 1.5.
- Tipos de datos parametrizados, es decir, ahora se puede especificar el tipo de datos que contienen estructuras tales como Vector o Map.
// Vector de cadenas Vector<String> v = new Vector<String>(); v.addElement("Hola"); String s = v.getElementAt(0); v.addElement(new Integer(20));// Daría error!! // HashMap con claves enteras y valores de vectores HashMap<Integer, Vector> hm = new HashMap<Integer, Vector>(); hm.put(1, v); Vector v2 = hm.get(1);Esto permite evitar el uso de castings y de autoboxing:
Vector<Integer> v = new Vector<Integer>(); v.addElement(30); Integer n = v.getElementAt(0); n = n+1;
- Mejoras en blucles. Ahora existe un nuevo for para recorrer colecciones y arrays sin usar Iterator:
// Recorre e imprime todos los elementos de un array int[] arrayInt = {1, 20, 30, 2, 3, 5}; for(int elemento: arrayInt) System.out.println (elemento); // Recorre e imprime todos los elementos de un Vector Vector<String> v = new Vector<String>(); for(String cadena: v) System.out.println (cadena); - Tipo Enum.
// Define una lista de 3 valores y luego comprueba en un switch // cuál es el valor que tiene un objeto de ese tipo enum EstadoCivil {soltero, casado, divorciado}; EstadoCivil ec = EstadoCivil.casado; ec = EstadoCivil.soltero; switch(ec) { case soltero:System.out.println("Es soltero"); break; case casado:System.out.println("Es casado"); break; case divorciado:System.out.println("Es divorciado"); break; } - Imports estáticos. Permiten usar métodos y propiedades estáticas sin tener que referenciar la clase específicamente.
import static java.awt.Color; import static java.lang.Math; public class... { ... JLabel lbl = new JLabel(); lbl.setBackground(white); // Antes sería Color.white ... double raiz = sqrt(1252.2);// Antes sería Math.sqrt(...) } - Argumentos variables. Ahora se puede pasar una lista de argumentos variable a una función como en C:
// Funcion que tiene un parámetro String obligatorio // y n parámetros int opcionales public void miFunc(String param, int... args) { ... // Una forma de procesar n parametros variables for (int argumento: args) { ... } ... } ... miFunc("Hola", 1, 20, 30, 2); miFunc("Adios"); - Metainformación. Ahora se pueden añadir directivas que transmitan información a las herramientas de desarrollo tipo Eclipse, del mismo modo que @deprecated permite que el compilador muestre la palabra tachada. Por ejemplo:
// Definición de una interfaz mediante metainformacion public @interface MiInterfaz { int metodo1(); String metodo2(); }
Hay muchas más novedades relacionadas con la máquina virtual y con las librerías. Te recomiendo leer este documento de donde he extraído yo la información más relevante.



Escribe un comentario
Los comentarios están cerrados