Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Kotlin + Generics + Gson / 3 сообщений из 3, страница 1 из 1
04.02.2020, 18:04
    #39922443
eJack
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kotlin + Generics + Gson
Всем доброго.

Вопрос по языку Kotlin

Мне требуется реализовать интерфейс

Код: java
1.
2.
3.
interface <T> Deserializer {
    fun deserialize(data: String): T
}



я пишу реализацию:
Код: java
1.
2.
3.
4.
5.
6.
class MyDeserializer<T>: Deserializer<T> {
    val g: Gson = Gson()
    override fun deserialize(data: String): T {
        g.fromJson(data, [color=red]T::class.java[/color])
    }
}



и соотвественно в "красном" месте получаю ошибку >> Cannot use 'T' as reified type parameter. Use a class instead

Кто знает как победить?

Всякие
Код: java
1.
class MyDeserializer<T: Object>: Deserializer<T> 


не работают, использовать

Код: java
1.
inline fun <reified T> String.fromJson(): T = Gson().fromJson(this, T::class.java)


не получается, так как в дженерик классе не получается использовать эту конструкцию - точнее она не работает
...
Рейтинг: 0 / 0
05.02.2020, 06:07
    #39922581
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kotlin + Generics + Gson
eJack,

Правильно ругается.
В данном случае класс можно получить через рефлексию.

Особенности JVM типы в генериках теряются.
...
Рейтинг: 0 / 0
05.02.2020, 21:15
    #39923117
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Kotlin + Generics + Gson
eJack
Вопрос по языку Kotlin

Мне требуется реализовать интерфейс

Код: java
1.
2.
3.
interface <T> Deserializer {
    fun deserialize(data: String): T
}



А смысл? Зачем он?
Просто пиши
Код: java
1.
gson.fromJson<RealType>(storesJson, RealType::class.java)

где это надо- и всё
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Kotlin + Generics + Gson / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]