Class<*>
-
定义:
Class<*>
用于表示类的元数据 -
用途:
Class<*>
允许在运行时获取类的名称、方法、字段、构造函数,用于动态创建 -
获取方式: 通过
ClassName.class.java
获取
KClass<*>
-
定义:
KClass<*>
用于表示类的元数据 -
用途:
KClass<*>
允许在运行时获取类的名称、方法、字段、构造函数,用于动态创建 -
获取方式: 通过
ClassName.class
获取
fun main() {
// 获取String类的Class对象
val stringJavaClass: Class<*> = String::class.java
// 通过反射创建实例
val strJava : String = stringJavaClass.getDeclaredConstructor().newInstance() as String
// 获取类的方法
val javaMethods: Array<Method> = stringJavaClass.methods
// 获取String类的KClass对象
val stringKotlinClass : KClass<*> = String::class
// 通过反射创建实例
val strKotlin : String = stringKotlinClass.java.getDeclaredConstructor().newInstance() as String
// 获取类的方法
val kotlinMethods = stringKotlinClass.members
// Class和Kcalss互相转换
val kClass: KClass<String> = String::class
val javaClass: Class<String> = kClass.java
val javaClass2: Class<String> = String::class.java
val kClass2: KClass<String> = javaClass2.kotlin
}