Otras lecciones del Curso de Java
¿Qué es IO en Java?
¿Cúales son los Operadores en Java?
¿Qué tipos de Variables hay en Java?
¿Cómo funciona Continue y Break en Java?
¿Cómo aplicar un Try Catch y Finally en Java?
¿Cómo utilizar el método super en Java?
¿Cómo trabajar con listas en Java?
¿Cuáles son los métodos de la clase String en Java?
¿Qué es un entorno de desarrollo en Java?
¿Qué es la Sobreescritura de métodos en Java?
¿Cómo utilizar un return en Java?
¿Cómo hacer un Hola Mundo en Java?
¿Cómo utilizar Throw y throws en Java?
¿Cómo hacer comentarios en Java?
¿Cuáles son las Palabras reservadas en Java?
Variables de entorno en Java
Características y estadísticas de Java e índice TIOBE
Estructura de proyecto, paquetes y clases en Java
Qué es una función en Java
¿Cómo funcionan las Funciones Java?
Operadores aritméticos en Java
Operadores de comparación en Java
Funciones anónimas en Java
Cómo invocar una función en Java
Atajos de teclado para IntelliJ
¿Qué es la Sobrecarga de funciones en Java?
Operadores lógicos en Java
Debug en Java
Como se crea una función en Java
¿Cómo crear Sentencias Switch en Java?
Bucles for en Java
¿Cómo hacer sentencias If e If else en Java?
¿Cómo funcionan los Bucles While en Java?
¿Qué son los objetos en Java?
¿Qué es el modificador static en Java y cómo se utiliza?
¿Qué es la herencia en Java?
¿Qué son los constructores en Java y cómo se utilizan?
¿Cómo crear clases en Java?
¿Qué es el Polimorfismo en Java?
¿Qué son las Clases Abstractas en Java?
¿Qué son las Interfaces de Java?
Implementación de una interface en Java
¿Cómo se hace refactoring en Java?
¿Cómo trabajar con Maps en Java?
¿Como funcionan los arrays en Java?
¿Cómo generar excepciones en Java?
¿Qué es la clase Scanner en Java?
Introducción a Swing en Java
¿Quieres descubrir más cosas como Programación genérica en Java?¡Apuntate a nuestro campus y empieza a aprender con nosotros y con toda la comunidad!

La programación genérica en Java permite escribir código que luego podrá ser reutilizado con diversos tipos de datos. Java ofrece esta posibilidad desde su versión 5.0, que salió al mercado en el año 2004.

Es un paradigma de programación que disminuye la cantidad de clases y métodos que se deben construir para cada aplicación que se desarrolla, puesto que permite reciclar lo que se ha escrito previamente.

Es importante tomar en cuenta que la programación genérica en Java no recibe tipos de datos primitivos como int, char, double, short, etc. Por lo tanto, es necesario trabajar con tipos genéricos o parametrizados.

¿Para qué sirve la programación genérica en Java?

La programación genérica en Java sirve para

Reutilizar código.

Con la programación genérica en Java, no es necesario crear una clase diferente para cada tipo de objeto que se va a manejar. De hecho, se puede escribir un método o una clase y usarlo para cada tipo lo requiera. 

Reducir errores en tiempo de ejecución.

Si hay errores en el código que tengan que ver con los tipos de datos que se han empleado, en la programación genérica estos serán detectables mientras se va compilando, no durante la ejecución final del programa.

Disminuir la necesidad de hacer conversiones de tipos primitivos.

Aunque es un procedimiento habitual, cuando el código es extenso suele tonarse engorroso.

¿Cómo utilizar la programación genérica en Java?

Con la programación genérica en Java se tiene la posibilidad de generar clases, interfaces y métodos que operan con tipos de datos parametrizados, es decir, cada uno de estos elementos podrá funcionar con diferentes tipos de datos.

Con este tipo de programación, se pueden usar las clases dinámicas disponibles en la API de Java como: ArrayList, LinkedList, HasMap, etc. y también existe la posibilidad de crear clases genéricas propias

Este código puede brindar una visión más clara de cómo funciona esto, en primer lugar aparece un bloque que corresponde a una clase genérica, que puede manejar cualquier tipo de dato, y lo va a mostrar, cuando se invoque el método correspondiente:

// crear clase generica
class ClaseGenerica < T > {

    // variable de tipo T
    private T miDato;

    // método constructor
    public ClaseGenerica() {
        miDato = null;
    }

    // método setter 
    public void setClaseGenerica(T miDato) {
        this.miDato = miDato;
    }
    // método que devuelve el dato
    public T getClaseGenerica() {
        return this.miDato;
    }

}

Luego, desde la clase principal, se pasan los tipos parametrizados a los objetos creados y se observa el resultado que arroja la ejecución del código:

class Main {
    public static void main(String[] args) {

        // Iniciamos la clase genérica
        // con un dato Integer
        ClaseGenerica < Integer > miEntero = new ClaseGenerica < Integer > ();
        miEntero.setClaseGenerica(90);
        System.out.println("Integer: " + miEntero.getClaseGenerica());

        // Iniciamos la clase genércia
        // con un dato String
        ClaseGenerica < String > miFrase = new ClaseGenerica < String > ();
        miFrase.setClaseGenerica("Esto es una frase común");
        System.out.println("String: " + miFrase.getClaseGenerica());
    }
}

Finalmente, es importante acotar que para la creación de las clases genéricas propias, como se observa en este ejemplo, se usan las letras T, U, K para trabajar con los datos que, en principio, se desconoce su tipo. 

Con el uso de la programación genérica, no solo se pueden generar clases, sino también métodos e interfaces. Además, se logra reutilizar el código y hacerlo más seguro, estable y menos susceptible a errores en tiempo de ejecución.

¿Todavía no te has apuntado a nuestro Bootcamp?
Tenemos muchos cursos para ofrecerte y ¡TOTALMENTE GRATIS! Estos son algunos de ellos: