Usar var para variables locales
Deje que el compilador infiera el tipo
Usar var para variables locales es una lección gratuita de Java Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Java Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Java Academy incluye 4 lecciones en total.
Inferencia de tipos local
Desde Java 10, puede declarar variables locales con var y dejar que el compilador infiera el tipo a partir del inicializador. Esto se denomina inferencia de tipos local. La variable sigue teniendo un tipo fuerte.
Su primer uso de var
Reemplace un tipo explícito por var al asignar un valor. El compilador ve el literal e infiere el tipo adecuado.
public class Main {
public static void main(String[] args) {
var message = "Hello";
var count = 42;
System.out.println(message + " " + count);
}
}var no es tipado dinámico
var no hace que Java tenga tipado dinámico. Una vez inferido, el tipo queda fijado. Asignar después un valor de otro tipo provoca un error de compilación.
public class Main {
public static void main(String[] args) {
var n = 10;
n = 20;
System.out.println(n);
}
}Inferir tipos de objetos
var también funciona con objetos. El tipo inferido es el tipo que devuelve la expresión del inicializador.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
var list = new ArrayList<String>();
list.add("a");
list.add("b");
System.out.println(list);
}
}Menos repetición
Ya no es necesario escribir dos veces los tipos genéricos largos. var elimina el tipo redundante del lado izquierdo.
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
var scores = new HashMap<String, Integer>();
scores.put("Alice", 90);
System.out.println(scores);
}
}Inferir a partir de valores devueltos por métodos
Cuando un método devuelve un valor, var obtiene automáticamente el tipo de retorno declarado.
public class Main {
static String greet() {
return "Hi there";
}
public static void main(String[] args) {
var g = greet();
System.out.println(g.toUpperCase());
}
}var con tipos primitivos
Un literal entero infiere int y un literal decimal infiere double. Tenga en cuenta qué tipo primitivo obtiene.
public class Main {
public static void main(String[] args) {
var i = 5;
var d = 5.0;
var b = true;
System.out.println(i + " " + d + " " + b);
}
}Se sigue comprobando en tiempo de compilación
Como el tipo se conoce en tiempo de compilación, el compilador sigue detectando los errores de tipos. Intentar llamar a un método de String sobre un int inferido impediría la compilación.
public class Main {
public static void main(String[] args) {
var name = "Coddy";
System.out.println(name.length());
}
}Debe inicializarse de inmediato
Una declaración con var requiere un inicializador en la misma línea. El compilador necesita un valor a partir del cual inferir el tipo.
public class Main {
public static void main(String[] args) {
var total = 0;
for (int i = 1; i <= 5; i++) {
total += i;
}
System.out.println(total);
}
}Funciona con arrays
Puede inferir un tipo de array siempre que el inicializador deje claro el tipo de sus elementos.
public class Main {
public static void main(String[] args) {
var numbers = new int[]{1, 2, 3, 4};
var sum = 0;
for (var n : numbers) {
sum += n;
}
System.out.println(sum);
}
}Un ejemplo práctico
Combinar var en un programa pequeño mantiene el código limpio sin dejar de estar completamente tipado.
import java.util.List;
public class Main {
public static void main(String[] args) {
var fruits = List.of("apple", "banana", "cherry");
for (var fruit : fruits) {
System.out.println(fruit.toUpperCase());
}
}
}Comprobación rápida
¿Cuál describe mejor cómo funciona var en Java?
Resumen
Ha aprendido a utilizar var para variables locales:
- El compilador infiere el tipo a partir del inicializador
- La variable sigue teniendo un tipo fuerte y estático
- Se requiere un inicializador en la misma línea
- Reduce la repetición con tipos genéricos largos
- Funciona con tipos primitivos, objetos y arrays
Preguntas frecuentes
¿La lección «Usar var para variables locales» es gratis?
Sí — el texto completo de «Usar var para variables locales» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Java Academy, actualiza a CoddyKit PRO. El curso de Java Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Usar var para variables locales»?
Deje que el compilador infiera el tipo Practicas Java Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Java Academy?
No se requiere experiencia previa. Java Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Usar var para variables locales»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Java Academy?
Sí. Cada lección de Java Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Usar var para variables locales
- Cuándo var mejora la legibilidad
- var en bucles for
- Limitaciones de var