Kotlin es un lenguaje de programación de propósito general tipificado estáticamente desarrollado por JetBrains, que ha creado IDE de clase mundial como IntelliJ IDEA, PhpStorm, Appcode, etc. Fue presentado por primera vez por JetBrains en 2011 y es un nuevo lenguaje para JVM. Kotlin es un lenguaje orientado a objetos y un «lenguaje mejor» que Java, pero aún así es totalmente interoperable con el código Java. Las reflexiones en Kotlin nos permiten introspeccionar la estructura de nuestro programa en tiempo de ejecución. Esto también nos permite hacer una introspección de los modificadores, métodos y propiedades de la clase. En este artículo, veremos cómo podemos iterar sobre las propiedades de una clase de Kotlin. ¡Entonces empecemos!
Ejemplo
En los siguientes pasos, veremos cómo iterar sobre las propiedades de una clase:
1. Aquí está nuestra clase Student con los atributos roll_number y full_name:
class Student constructor (var roll_number : Int, var full_name : String)
2. Ahora, usaremos una declaración for, porque queremos iterar sobre varias propiedades que puede tener una clase:
Kotlin
fun main (args: Array<String>) { var student=Student (2013001, "Alok Yadav" ) for (property in Student : : class. memberProperties){ println ("${property . name) = ${property . get (student) }") } }
Producción:
full_name = Alok Yadav roll_number = 2013001
La implementación es bastante sencilla. Podemos lograr una introspección en las propiedades de la clase porque estamos usando reflejos y memberProperties es solo una de las muchas funciones de KClass . Una cosa a tener en cuenta es que memberProperties devuelve todas las propiedades que no son de extensión declaradas en esta clase y todas sus superclases. Consideremos que tenemos una clase Person , de la siguiente manera:
Kotlin
open class Person{ val isHuman : Boolean = true }
Además, ampliamos nuestra clase Student con la clase Person , y luego el mismo código que se usó anteriormente con el método memberProperties dará como resultado el resultado que se muestra:
full name = Aanand Shekhar Roy roll_number = 2013001 isHuman = true
Por lo tanto, si solo desea iterar sobre los campos declarados en la clase Student , necesitará el método declareMemberProperties . Aquí hay un ejemplo con declareMemberProperties :
Kotlin
for (property in Student :: class.declaredMemberProperties) { println ("${property.name} = ${property.get(student)}") }
Producción:
full_name = alok yadav roll_number = 2013001
Los ejemplos anteriores fueron para Kotlin kClass . Supongamos que desea iterar sobre las propiedades de Java Class<T>; puede usar una propiedad de extensión de Kotlin para obtener Kotlin KClass<T>, a partir de la cual puede proceder, por ejemplo,
something.javaClass.kotlin.memberProperties.
Hay una lista de métodos proporcionados por la biblioteca Reflection de Kotlin, con la ayuda de los cuales puede realizar una gran cantidad de introspección en tiempo de ejecución. Para eso, verifíquelo en kotlinlanf.org o podemos decir Documentación oficial de Kotlin y puede hacer clic aquí .
Publicación traducida automáticamente
Artículo escrito por eralokyadav2019 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA