Size: a a a

2021 May 28

a

awawa in Kotlin Start
Так нельзя перегружать
источник

a

awawa in Kotlin Start
А как тогда проверять тип? Через is всё равно нельзя
источник

ДД

Дмитрий ДМ in Kotlin Start
почему нельзя? через is в рантайме можно проверить пришедший тип
источник

a

awawa in Kotlin Start
Ну может я тогда неправильно написал, но идея на такое ругается
источник

BP

Bogdan Panchenko in Kotlin Start
Можно если дженерик refiled
источник

a

awawa in Kotlin Start
А, у самого интерфейса?
источник

BP

Bogdan Panchenko in Kotlin Start
Не сам T проверяем, также нужен else
источник

ВО

Виктор Орехов... in Kotlin Start
А что за ошибка появляется, я сейчас не у компа
источник

BP

Bogdan Panchenko in Kotlin Start
Дженериков нет в рантайме, поэтому перегрузка не работает
источник

a

awawa in Kotlin Start
Это одинаковые функции. Потому что тип съедается при компиляции
источник

BP

Bogdan Panchenko in Kotlin Start
Если у вас sealed class/interface то не нужно
источник

ВО

Виктор Орехов... in Kotlin Start
Так там же явно указывается тип передаваемого значение PlayerDTO, TaskDTO или я не в ту сторону воюю?
источник

BP

Bogdan Panchenko in Kotlin Start
Вот тут все будетChangeListener, а самого дженерика не будет
источник

ВО

Виктор Орехов... in Kotlin Start
Понял, грубо говоря, "внутренний" тип опускается?
источник

BP

Bogdan Panchenko in Kotlin Start
Это дженерик тип, который в рантайме нет, там касты к нужно типу.

Он не опускается его физически нет. Тяжёлое наследия совместимости (для JVM)
источник

a

awawa in Kotlin Start
Ну вот единственное на что идея не ругается выглядит так. Но при этом competitionsListeners будет торчать наружу пабликом. В общем, спасибо всем за советы, вернусь я, наверное, к некрасивому варианту)
источник

ДД

Дмитрий ДМ in Kotlin Start
на такое тоже не ругается:

class Gene<T>(type: T){

   val typeOfT = if (type is Int) "Its Int"
                       else "Its Long"
}
источник

ДД

Дмитрий ДМ in Kotlin Start
надо бы почитать что есть такое стирание типа в офф документации, ибо в примере выше без рефайда в рантайме можно определить тип. быть может я ошибаюсь и стирание типа подразумевает другой процесс
источник

a

awawa in Kotlin Start
Это, наверное, при компиляции может проверяться, поэтому не ругается. А мне надо в рантайме.
источник

ДД

Дмитрий ДМ in Kotlin Start
вот полный код, где в рантайме все работает. я ранее про это спорил в другом чате уже
источник