Hoe vind ik het type variabele in Kotlin?
In Java is er instanceof
, maar Kotlin bestaat niet:
val properties = System.getProperties() // Which type?
Antwoord 1, autoriteit 100%
U kunt de is
gebruiken operatorom te controleren of een object van een bepaald type is:
val number = 5
if(number is Int) {
println("number is of type Int")
}
Je kunt het type ook als String
krijgen met reflectie:
println("${number::class.simpleName}") // "Int"
println("${number::class.qualifiedName}") // "kotlin.Int"
Let op:
Op het Java-platform is de runtime-component die nodig is voor het gebruik van de
reflectiefuncties worden gedistribueerd als een afzonderlijk JAR-bestand
(kotlin-reflect.jar). Dit wordt gedaan om de vereiste grootte van de
runtime-bibliotheek voor toepassingen die geen reflectiefuncties gebruiken.
Als je reflectie gebruikt, zorg er dan voor dat het .jar-bestand is toegevoegd
naar het klassenpad van uw project.
Bron: https://kotlinlang.org/ docs/reference/reflection.html#bound-class-references-since-11
Antwoord 2, autoriteit 4%
Je kunt het als volgt gebruiken:
val value="value"
println(value::class.java.typeName)
Antwoord 3, autoriteit 2%
je kunt de klassenaam krijgen met properties::class.simpleName