Kotlin 获取类型为字符串
Kotlin get type as string
我找不到如何使用 Kotlin 语言将变量(或常量)的类型获取为 String
,如 typeof(variable)
。如何实现?
Type Checks and Casts: 'is' and 'as'
if (obj is String) {
print(obj.length)
}
if (obj !is String) { // same as !(obj is String)
print("Not a String")
}
您可以使用最适合您需要的方法之一:
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
您可以 fiddle 使用此 here。
有一种更简单的方法,使用 simpleName
属性 并避免使用 Kotlin 前缀。
val lis = listOf(1,2,3)
lis
来自类型 ArrayList
。所以可以使用
println(lis.javaClass.kotlin.simpleName) // ArrayList
或者,更优雅地:
println(lis::class.simpleName) // ArrayList
您可以使用'::class'关键字来给出实例的类型。 属性 .simpleName return returned class.
的字符串名称
var variable = MyClass()
var nameOfClass = variable::class.simpleName
nameofClass >> "MyClass"
我找不到如何使用 Kotlin 语言将变量(或常量)的类型获取为 String
,如 typeof(variable)
。如何实现?
Type Checks and Casts: 'is' and 'as'
if (obj is String) {
print(obj.length)
}
if (obj !is String) { // same as !(obj is String)
print("Not a String")
}
您可以使用最适合您需要的方法之一:
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
您可以 fiddle 使用此 here。
有一种更简单的方法,使用 simpleName
属性 并避免使用 Kotlin 前缀。
val lis = listOf(1,2,3)
lis
来自类型 ArrayList
。所以可以使用
println(lis.javaClass.kotlin.simpleName) // ArrayList
或者,更优雅地:
println(lis::class.simpleName) // ArrayList
您可以使用'::class'关键字来给出实例的类型。 属性 .simpleName return returned class.
的字符串名称var variable = MyClass()
var nameOfClass = variable::class.simpleName
nameofClass >> "MyClass"