在扩展函数中检索返回值的类

时间:2018-11-28 07:50:19

标签: android kotlin kotlin-android-extensions

我要替换此功能:

fun <T : Parcelable> Parcel.readObject(result: Parcelable.Creator<T>): T {
    return this.readParcelable(result::class.java.classLoader) as T
}

具有以下功能:

fun <T : Parcelable> Parcel.readObject(): T {
    return this.readParcelable(T::class.java.classLoader) as T
}

因此,我希望它检索返回值的类并获取该类的classLoader。这可能吗?

1 个答案:

答案 0 :(得分:4)

您可以通过使用reified关键字来实现此目的,

inline fun <reified T : Parcelable> Parcel.readObject(): T {
    return this.readParcelable(T::class.java.classLoader) as T
}

您可以在docs

中详细了解reified参数