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"