El concepto de Java var keyword es uno de los conceptos nuevos del jdk10 y nos permite una gestión más sencilla de los tipos genéricos en el mundo Java ya que el JDK10 es capaz de realizar lo que se denomina una inferencia de tipos sobre nuestras variables. Normalmente cuando nosotros queremos utilizar un tipo genérico es tan sencillo como declararlo . Supongamos que tenemos una lista de Personas. El primer paso es crear la clase Persona.
package com.arquitecturajava; public class Persona { private String nombre; private String apellidos; private int edad; public Persona(String nombre, String apellidos, int edad) { super(); this.nombre = nombre; this.apellidos = apellidos; this.edad = edad; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getApellidos() { return apellidos; } public void setApellidos(String apellidos) { this.apellidos = apellidos; } public int getEdad() { return edad; } public void setEdad(int edad) { this.edad = edad; } }
Una vez creada la clase nos encontramos en la necesidad de construir un programa main con un ArrayList de este tipo de objetos. Valdría con algo como lo siguiente
package com.arquitecturajava; import java.util.ArrayList; public class Principal { public static void main(String[] args) { ArrayList<Persona> lista= new ArrayList<Persona>(); lista.add(new Persona("pedro","perez",20)); } }
En muchas ocasiones nos sucederá que consideraremos que el tipo con el que estamos declarando la variable esta repetido .
Es más desde Java 7 existe la posibilidad de utilizar el operador diamante y que Java infiera el tipo por tí . El código sería :
package com.arquitecturajava; import java.util.ArrayList; public class Principal2 { public static void main(String[] args) { ArrayList<Persona> lista= new ArrayList<>(); lista.add(new Persona("pedro","perez",20)); } }
El código compila pero hemos tenido que declarar la persona dos veces. Sin embargo muchas veces nos olvidamos de esta posibilidad y es algo que genera dudas a los desarrolladores.
Java var keyword al rescate
A partir de Java 10 es mucho más directo usar la declaración de var para inferir el tipo de forma automática y el código queda mucho más natural.
Veámoslo:
package com.arquitecturajava; import java.util.ArrayList; public class Principal3 { public static void main(String[] args) { var lista= new ArrayList<Persona>(); lista.add(new Persona("pedro","perez",20)); } }
De esta forma nuestro código quedará mucho más claro.
Y cuanto más fácil nos lo ponen, más torpes nos volvemos.
La declaración “ArrayList<Persona> lista= new ArrayList<>();” conceptualmente no está bien hecha. En realidad la variable persona debería ser de tipo List<Persona>, puesto que las variables deberían ser declaradas a partir de la interfaz y no de una implementación concreta de ésta.
Es cierto de hecho podría ser incluso collection el interface , se trata simplemente de un ejemplo orientativo
El peor ejemplo que he visto en mi vida, no se ve por ningún lado lo que aporta el uso de var.
Bueno nos permite simplificar y olvidarnos de la inferencia de tipos . Es un artículo sencillo añade algún link a un ejemplo mas completo gracias 🙂
Ti nunca lleva tilde
Ti tititi tititi titití
Titi me preguntó to to to to