0Pricing
Java Academy · Lección

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

  1. Usar var para variables locales
  2. Cuándo var mejora la legibilidad
  3. var en bucles for
  4. Limitaciones de var
← Volver a Java Academy