Uso de Var
¿Para que sirve la palabra reservada var?
Crear objetos y variable tipo primitivo sin indicar el tipo. Es decir hay una inferencia de tipo, java internamente gestiona el tipo de dato. La sintaxis es la siguiente:
ArrayList<Persona> lista= new ArrayList<>();
lista.add(new Persona("pedro","perez",20));
// Pasamos a esto
var lista= new ArrayList<Persona>();
lista.add(new Persona("pedro","perez",20));
Condiciones
- Siempre variable inicializadas.
- Se puede usar con String, char, long, float, double, boolean y Objetos.
- Con byte y short necesario Cast.
- Null no es inferible, lo mismo con arrays.
- Con lambda se puede usar, pero si tiene más de un argumento hay que usarlo en todos. Aspecto muy cambiante en las últimas versiones de Java:
(var s1, var s2) -> s1 + s2
// No permitido
(var s1, s2) -> s1 + s2
// Tampoco esto
(var s1, String s2) -> s1 + s2
Aclaración importante
Java sigue siendo fuertemente tipado en comparación a otros lenguajes de programación como JavaScript. Es decir una variable no puede cambiar de tipo al que referencia.
Ejemplo
//datos primitivos
var texto = "abc";
var caracter = '\n';
var largo = 42L;
var flotante = 3.14f;
var doble = 3.14d;
var logico = true;
//necesario cast con este tipo
var octeto = (byte)1;
var corto = (short)2;
var entero = 3;
var p=new Object();
var list = new ArrayList<String>(); // infiere ArrayList<String>
//Siempre algo inicializado
//var count=null;// Compilation error
//Uso cómodo en bucles for
var numbers = List.of("a", "b", "c");
//for corto
for (var nr : numbers)
System.out.print(nr + " ");
//for largo
for (var i = 0; i < numbers.size(); i++)
System.out.print(numbers.get(i) + " ");