I can't find how to get the type of a variable (or constant) as String
, like typeof(variable)
, with Kotlin language. How to accomplish this?
You just use typeName of java. lang. Class<T> instead of the qualifiedName of KCLass<T> (more Kotlin-ish) as I've shown in my answer stackoverflow.com/a/45165263/1788806 which was the previously chosen one. @WilliMentzel Your answer is perfect and idiomatic.
You can use b::class. simpleName that will return type of object as String . You don't have to initialize type of a variable and later you want to check the type of variable.
In certain computer programming languages, the Elvis operator ?: is a binary operator that returns its first operand if that operand is true , and otherwise evaluates and returns its second operand.
You can use one of the methods that best suits your needs:
val obj: Double = 5.0 System.out.println(obj.javaClass.name) // double System.out.println(obj.javaClass.kotlin) // class kotlin.Double System.out.println(obj.javaClass.kotlin.qualifiedName) // kotlin.Double
You can fiddle with this here.
There is a simpler way using simpleName
property and avoiding Kotlin prefix.
val lis = listOf(1,2,3)
lis
is from type ArrayList
. So one can use
println(lis.javaClass.kotlin.simpleName) // ArrayList
or, more elegantly:
println(lis::class.simpleName) // ArrayList
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With