Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

generics

Los genéricos en Java son una herramienta poderosa para escribir código más modular y seguro. Al definir clases, interfaces y métodos genéricos, puedes hacer que tu código funcione con distintos tipos de datos sin perder el control sobre la seguridad de los tipos.

Un buen ejemplo es la clase Caja, donde T representa un tipo genérico. Esto permite almacenar cualquier tipo de dato sin necesidad de crear una versión específica de la clase para cada tipo. Además, el compilador garantiza que los tipos se mantengan correctamente, evitando errores en tiempo de ejecución.

public class Caja<T> {
    private T contenido;

    public T getContenido() {
        return contenido;
    }

    public void setContenido(T contenido) {
        this.contenido = contenido;
    }
}

implemetación

public class TesteaCaja {
    public static void main(String[] args) {
        Caja<String> cajaDeTexto = new Caja();
        cajaDeTexto.setContenido("Caja con texto!");

        Caja<Integer> cajaDeEntero = new Caja();
        cajaDeEntero.setContenido(27);

        Caja<Double> cajaDeDecimal = new Caja<>();
        cajaDeDecimal.setContenido(9.18);
    }
}
1 respuesta

Hola Diego, espero que estés bien

¡Tienes toda la razón al destacar la utilidad de los genéricos en Java! Son realmente una herramienta poderosa para escribir código más flexible y seguro. En tu ejemplo, la clase Caja<T> ilustra perfectamente cómo los genéricos permiten manejar diferentes tipos de datos sin necesidad de duplicar el código para cada tipo específico.

Solo un pequeño detalle en tu implementación: cuando creas instancias de Caja, es una buena práctica utilizar el operador diamante <> para que el compilador infiera el tipo genérico. Aunque tu código funcionará sin él, usar el operador diamante es una forma más moderna y clara de escribir el código. Aquí tienes cómo se vería tu código con esta pequeña mejora:

public class TesteaCaja {
    public static void main(String[] args) {
        Caja<String> cajaDeTexto = new Caja<>();
        cajaDeTexto.setContenido("Caja con texto!");

        Caja<Integer> cajaDeEntero = new Caja<>();
        cajaDeEntero.setContenido(27);

        Caja<Double> cajaDeDecimal = new Caja<>();
        cajaDeDecimal.setContenido(9.18);
    }
}

Espero que esta pequeña sugerencia te sea útil. ¡Espero haber ayudado y buenos estudios!