Получить класс возвращаемого значения в функции расширения - PullRequest
0 голосов
/ 28 ноября 2018

Я хочу заменить эту функцию:

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 голосов
/ 28 ноября 2018

Это можно сделать с помощью ключевого слова reified следующим образом:

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

Подробнее о reified параметрах можно прочитать в документах

...