Interfaz genérica en Java

MD Aminul Islam 12 octubre 2023
Interfaz genérica en Java

La Interfaz genérica es la interfaz a través de la cual puede tratar con tipos de datos abstractos. Le ayudará a manipular las colecciones de Java independientemente de los detalles de representación.

Se utiliza principalmente para lograr herencias múltiples en forma de jerarquía. La Interfaz genérica puede incluir solo todos los métodos.

A diferencia de las clases de uso común, la Interfaz genérica no contiene ningún constructor.

Al usar la palabra clave implementos, puede establecer fácilmente una conexión con una interfaz. Obtendrá los siguientes beneficios de la Interfaz genérica.

  1. Puede implementar fácilmente diferentes tipos de datos.
  2. Te permite poner restricciones.

Este artículo discutirá la Interfaz genérica y cómo podemos usarla. Discutiremos el tema usando ejemplos y explicaciones para facilitar el tema.

Interfaz genérica en Java

A continuación, veremos un ejemplo en el que usamos Interfaz genérica para encontrar el valor máximo tanto de la matriz de caracteres como de la matriz de enteros. El código de nuestro ejemplo será el siguiente:

interface FindMinMax<T extends Comparable<T>> {
  T Max();
}
class MyClass<T extends Comparable<T>> implements FindMinMax<T> {
  T[] vals;
  MyClass(T[] o) {
    vals = o;
  }
  public T Max() {
    T Value = vals[0];
    for (int i = 1; i < vals.length; i++) {
      if (vals[i].compareTo(Value) > 0) {
        Value = vals[i];
      }
    }
    return Value;
  }
}

public class GenericInterface {
  public static void main(String args[]) {
    Integer nums[] = {10, 6, 2, 8, 6};
    Character chars[] = {'b', 'r', 'p', 'Z'};
    MyClass<Integer> a = new MyClass<Integer>(nums);
    MyClass<Character> b = new MyClass<Character>(chars);
    System.out.println("The max number is: " + a.Max());
    System.out.println("The max character is: " + b.Max());
  }
}

En nuestro ejemplo anterior, primero creamos una interfaz llamada FindMinMax con un método abstracto llamado Max(). Después de eso, creamos otra clase llamada MyClass donde definimos ese método abstracto en la interfaz.

Finalmente, creamos la clase GenericInterface, donde declaramos una matriz de enteros y una matriz de caracteres. Luego creamos dos objetos, uno para números y otro para chars.

Por último, simplemente imprimimos el resultado como una salida. Ejecutar el código anterior mostrará una salida como la siguiente.

The max number is: 10
The max character is: r

Una nota importante es que una vez que establece un límite, no necesita volver a establecerlo usando la cláusula implementos.

Si implementa una clase usando una Interfaz genérica, entonces todas las clases deben ser genéricas para que puedan tomar un parámetro de tipo pasado a la interfaz.

Tenga en cuenta que los ejemplos de código compartidos aquí están en Java y debe instalar Java en su entorno si su sistema no contiene Java.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn