AnyCompiler

El Tipo Optional

Optional<T> representa un valor que podría o no estar presente, como una alternativa explícita a devolver null y esperar que quien llama se acuerde de comprobarlo. Optional.of(value) envuelve un valor presente, Optional.empty() representa uno ausente, y orElse(fallback) lo desenvuelve de forma segura, suministrando un valor por defecto cuando no hay nada.

import java.util.Optional;

public class Main {
    static Optional<String> findUser(int id) {
        if (id == 1) {
            return Optional.of("Alice");
        }
        return Optional.empty();
    }

    public static void main(String[] args) {
        Optional<String> user = findUser(1);
        System.out.println(user.orElse("Unknown"));
        Optional<String> missing = findUser(2);
        System.out.println(missing.orElse("Unknown"));
    }
}
Output
Alice
Unknown

Esa es la base de Java: classes e interfaces para estructurar código, inheritance y polymorphism para compartir comportamiento, generics y el Collections Framework para estructuras de datos reutilizables y type-safe, y lambdas y streams para el estilo más moderno y funcional de Java. Desde aquí, el mejor siguiente paso es practicar — elige un programa pequeño y constrúyelo, apoyándote en la verificación de tipos estática del compilador para detectar errores sobre la marcha.

Practice exercise

Escribe un method findUser(int id) que devuelva un Optional<String>: "Alice" si id es 1, de lo contrario empty. Llámalo con 2 e imprime el resultado con orElse("Unknown").

← static y finalMás lecciones próximamente