Size: a a a

Android Developers

2020 November 21

GK

Gregory Klyushnikov in Android Developers
так что, видимо, где-то в метаданных они всё-таки есть (я не смотрел внутрь байткода)
источник

PE

Pavel Erokhin in Android Developers
Gregory Klyushnikov
ну Gson как-то таки умеет их получать в рантайме
никто еще не с умел)
источник

I

Ilya in Android Developers
Gregory Klyushnikov
так что, видимо, где-то в метаданных они всё-таки есть (я не смотрел внутрь байткода)
нету, в Gson такого нету, только костылить через TypeToken
источник

GK

Gregory Klyushnikov in Android Developers
ну тем не менее, компилятор мне говорит
error: incompatible types: Class<ObjectListResponse> cannot be converted to Class<ObjectListResponse<TrackDTO>>
источник

I

Ilya in Android Developers
Gregory Klyushnikov
ну тем не менее, компилятор мне говорит
error: incompatible types: Class<ObjectListResponse> cannot be converted to Class<ObjectListResponse<TrackDTO>>
ну, нижний дженерик запомнить способа нету нормального
источник

GK

Gregory Klyushnikov in Android Developers
🤔
источник

GK

Gregory Klyushnikov in Android Developers
Ilya
нету, в Gson такого нету, только костылить через TypeToken
у меня он как-то без него справлялся, я тоже удивился
источник

I

Ilya in Android Developers
Gregory Klyushnikov
у меня он как-то без него справлялся, я тоже удивился
оно запоминает только верхний объект и кастит к нему в байткоде, а вот дженерики этого объекта стираются
источник

GK

Gregory Klyushnikov in Android Developers
и вот
источник

GK

Gregory Klyushnikov in Android Developers
Ilya
оно запоминает только верхний объект и кастит к нему в байткоде, а вот дженерики этого объекта стираются
верхний — это какой?
источник

PE

Pavel Erokhin in Android Developers
Gregory Klyushnikov
верхний — это какой?
Any, object
источник

I

Ilya in Android Developers
Gregory Klyushnikov
верхний — это какой?
ну, например, делаешь
getObject<List<String>>()
, то оно запомнит только List, а String пропадёт
и в байткоде будет что-то типа getObject() as List
источник

GK

Gregory Klyushnikov in Android Developers
Ilya
ну, например, делаешь
getObject<List<String>>()
, то оно запомнит только List, а String пропадёт
и в байткоде будет что-то типа getObject() as List
ну это понятно, а если мой случай — class StringList extends ArrayList<String>
источник

GK

Gregory Klyushnikov in Android Developers
тоже сотрётся и вообще нигде не останется?
источник

I

Ilya in Android Developers
Gregory Klyushnikov
тоже сотрётся и вообще нигде не останется?
да, даже в котлине пока нельзя сделать, ибо reified классов нет
источник

PE

Pavel Erokhin in Android Developers
Ilya
да, даже в котлине пока нельзя сделать, ибо reified классов нет
да и такое возможно будет только на inline class, но пока такого вроде нет еще для инлайн классов
источник

I

Ilya in Android Developers
Pavel Erokhin
да и такое возможно будет только на inline class, но пока такого вроде нет еще для инлайн классов
где-то внутри котлина они есть(Result), но общедоступное ещё делают)
источник

GK

Gregory Klyushnikov in Android Developers
я вспомнил, когда у меня gson сам работал для генериков — когда у меня в классе было поле типа List<ДругойОбъект>, он таки откуда-то это вытащил и распарсил правильно без дополнительного вмешательства
источник

I

Ilya in Android Developers
Gregory Klyushnikov
я вспомнил, когда у меня gson сам работал для генериков — когда у меня в классе было поле типа List<ДругойОбъект>, он таки откуда-то это вытащил и распарсил правильно без дополнительного вмешательства
ну, придётся делать что-то типа (List<String>) gson.fromJson(obj, List.class) если я правильно помню
источник

N

Nikita in Android Developers
Ilya
ну, придётся делать что-то типа (List<String>) gson.fromJson(obj, List.class) если я правильно помню
Typetoken юзайте
источник