与Java反射的互操作性

在Java平台上,标准库包含反射类的扩展,该扩展提供了与Java反射对象的相互映射(可以查看kotlin.reflect.jvm)。比如,为了找到一个备用字段或Java方法作为Kotlin属性的getter,你可以这样做:

import kotlin.reflect.jvm.*
class A(val p: Int)
fun main(args: Array<String>) {
    println(A::p.javaGetter) // prints "public final int A.getP()"
    println(A::p.javaField) // prints "private final int A.p"
}

为了获取与Java类相对应的Kotlin类,使用.kotlin扩展属性:

fun getKClass(o: Any): KClass<Any> = o.javaClass.kotlin

results matching ""

    No results matching ""