在扩展函数中检索 class 的 return 值
Retrieve class of return value in extension function
我想替换这个函数:
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
}
所以我希望它检索 return 值的 class 并获取那个 class 的 classLoader。这可能吗?
您可以使用 reified
关键字来实现,如下所示:
inline fun <reified T : Parcelable> Parcel.readObject(): T {
return this.readParcelable(T::class.java.classLoader) as T
}
您可以在 docs
中阅读有关 reified
参数的更多信息
我想替换这个函数:
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
}
所以我希望它检索 return 值的 class 并获取那个 class 的 classLoader。这可能吗?
您可以使用 reified
关键字来实现,如下所示:
inline fun <reified T : Parcelable> Parcel.readObject(): T {
return this.readParcelable(T::class.java.classLoader) as T
}
您可以在 docs
中阅读有关reified
参数的更多信息