Como funciona la referencia de métodos en Kotlin (Desmenuzando el código)

3 minuto(s)

La referencia de métodos en Kotlin es una de las características más comentadas y amadas por los Desarrolladores con este genial Lenguaje de Programación, pero quizás te hayas preguntado, como funciona internamente la referencia de métodos en Kotlin, en este Post te  compartiré los detalles sobre este asunto.

Antes de continuar, te recomiendo leer el artículo Que es Kotlin y otros detalles para que estés familiarizado con este Post y si ya conoces sobre Kotlin, pues adelante, no hay problema.

Asimismo te invito a escuchar el Podcast: “Dominio del trabajo con Varios Lenguajes de Programación.”

Sound Cloud:

Spotify:

Bien ahora continuemos con el Post: Como funciona la referencia de métodos en Kotlin.

Veamos el siguiente código, en el declaro un método y lo paso o uso dentro de otro método


En el código anterior puedes ver que tenemos 2 clases, una es la clase Hola y la otra es la clase SumaCompleja. He pasado la referencia de guardarEnDB a SumaCompleja y de inmediato se ejecuta, pero ¿ Cómo funciona esto internamente ? y ¿ Cómo se pasa el método a SumaCompleja ?, esto parece ser muy abstracto y no tenemos mucha información en el momento.

Los métodos muchas veces no pueden funcionar de manera independiente en Java, dependen de las clases. Entonces lo que haré es convertir el código Kotlin a código Java con el editor de código IntelliJ IDEA.

El editor de código IntelliJ IDEA cuenta con una herramienta que nos permite convertir el código Kotlin a código Java, entonces veamos sin más detalles, que hay dentro del siguiente código convertido de Kotlin a Java.


En el código anterior convertido de Kotlin a Java, se ha generado una clase interna anónima de tipo function() por ende se invoca otra función más, esto en el primer código en Kotlin no se hacia. ¿ Que es lo que ha pasado aquí ?

Como funciona internamente la referencia de método en Kotlin

Exactamente  function() aparece en las primeras líneas del código:


Entonces podemos ver que function() es la interfaz y lo que está haciendo el compilador de Kotlin es envolver la función en otra clase llamada Function0 y lo pasa al objeto de la clase como referencia a SumaCompleja:


En la clase SumaCompleja el método recibir recibe una instancia de Function0 y llama al método invoke.

Luego arriba en el código completo (Java) el método invoke a su vez llama al método original guardarEnBD como ((Hola)this.recibir).guardarEnBD(); y podemos ver que la referencia a la clase de llamada también se pasa al código generado.

Entonces así es como funciona internamente la popular referencia de método en el Lenguaje de Programación Kotlin.

Conclusión

En este Post expongo en detalle como funciona esta popular funcionalidad en Kotlin, si no convertía el código de Kotlin a Java difícilmente iba a entender esto, espero que te haya ayudado.

Nota(s)

  • No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.

 

Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenido.