java

Java – Interfaz con parámetro genérico

En este post te mostraré un ejemplo de cómo crear una interfaz en Java (o interface) con una función o método que recibe un parámetro genérico, es decir, un parámetro de cualquier tipo.

Personalmente utilicé esta interfaz para tener un único Adaptador de RecyclerView en Android, pero su uso puede ser llevado más allá.

La interfaz con método genérico

La interface Java queda definida así:

import android.view.View;

public interface InterfazClickRecyclerView<T> {
    void onClick(View v, T objeto);
}

Gracias al tipo T podemos esperar un parámetro genérico. A continuación veremos su implementación, en donde debemos especificar el tipo.

Como ves solo tenemos un método llamado onClick que pasará un View y un objeto de cualquier tipo, esto es, un genérico en Java.

Usar interfaz

Ahora podemos usar la interfaz. Por ejemplo:

InterfazClickRecyclerView<Deuda> interfazClickRecyclerView = new InterfazClickRecyclerView<Deuda>() {
    @Override
    public void onClick(View v, Deuda objeto) {

    }
};

Como tenemos un método con genéricos, podemos especificar el tipo (que en este caso es la clase Deuda) así que lo definimos y al sobrescribir ya no tenemos un tipo T, sino un tipo Deuda.

Recibir interfaz como argumento

También se puede especificar que se va a recibir una interfaz de determinado tipo. Por ejemplo:

public void hacerAlgo(InterfazClickRecyclerView<Deuda> interfaz) {
    // Aquí usar la interfaz. Por ejemplo:
    Deuda deuda = new Deuda("", 0f, Calendar.getInstance(), Calendar.getInstance());
    interfaz.onClick(getView(), deuda);
}

Usar en Kotlin

Quiero mostrar cómo se usa esta interfaz en Kotlin. Se usa así:

val interfazClickRecyclerView: InterfazClickRecyclerView<Deuda> = InterfazClickRecyclerView { _, objeto ->
    Toast.makeText(activity!!, objeto.toString(), Toast.LENGTH_SHORT).show()
}

En este caso simplemente estoy mostrando el objeto en un Toast, pero recuerda, esto se puede aplicar a cualquier lugar de Java o Kotlin sin importar si es o no con Android.

Bonus: definir en Kotlin

Si quieres definir la interfaz en Kotlin, su equivalente es:

import android.view.View

interface InterfazClickRecyclerView<T> {
    fun onClick(v: View, objeto: T)
}

Con esto terminamos por hoy.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Cancelar trabajo de impresión con C++

En este post te quiero compartir un código de C++ para listar y cancelar trabajos…

21 horas hace

Copiar bytes de Golang a JavaScript con WebAssembly

Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…

4 semanas hace

Imprimir PDF con Ghostscript en Windows de manera programada

Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…

4 semanas hace

Hacer pruebas en impresora térmica Bluetooth Android

Esta semana estuve recreando la API del plugin para impresoras térmicas en Android (HTTP a…

1 mes hace

Limpiar clave PEM

Hoy te enseñaré a extraer la cadena base64 de una clave PEM usando una función…

1 mes hace

Foco con Telegram, apagador de 3 vías, relevador y ESP8266

Encender un foco con un Bot de Telegram es posible usando una tarjeta como la…

1 mes hace

Esta web usa cookies.