Size: a a a

Kotlin Community

2019 December 25

AE

Alexandr Emelyanov in Kotlin Community
Alexandr Emelyanov
inline fun <reified T: IFoo<V>, V> createBar() : Bar<V> {
   return Bar<V>()
}
это вообще ересь получается
источник

AE

Alexandr Emelyanov in Kotlin Community
Kopusha
Фигню наверное спрашиваю, но можно такое сделать?

interface IFoo<A>
class Foo: IFoo<String>

class Bar<A>: IFoo<A>

inline fun <reified T: IFoo<*>> createBar(){
   val type = T::class.supertypes[0].arguments[0].type // String

   // Bar2<type>() ??
}

createBar<Foo>()

Т.е. тип вроде не потерялся, он видит, что там String. Но как создать Bar<String>() оттуда?
тогда уже так
inline fun <reified T: IFoo<V>, V> createBar(foo: T) : Bar<V> {
   return Bar<V>()
}
источник

AE

Alexandr Emelyanov in Kotlin Community
если использование такое:
val foo = Foo()
val bar = createBar(foo)
источник

AO

Alexey Otts in Kotlin Community
А зачем?
источник

U

Unat in Kotlin Community
🐳 Deep Velocity 🐳
Господа, по работе тут уместно спрашивать?
Смотря кем работаешь, я полагаю
источник

AE

Alexandr Emelyanov in Kotlin Community
Alexey Otts
А зачем?
я тоже задумался, но в итоге нашел только одно предназначение, не переписывать дженерики по цепочке, если тип у Foo поменяется, но ИМХО тогда уж лучше дженеризировать весь метод и дело в шляпе
источник

U

Unat in Kotlin Community
А ещё попробуйте новый вывод типов, он часто избавляет от необходимости указывать их явно
источник

R

Ramazan in Kotlin Community
В Котлин есть синглтон object
Он будет жить пока программа не выгрузится из памяти?
И как его убить? Надо ли заботиться об этом?
Где можно подробно прочитать об этом.
источник

AO

Alexey Otts in Kotlin Community
Ramazan
В Котлин есть синглтон object
Он будет жить пока программа не выгрузится из памяти?
И как его убить? Надо ли заботиться об этом?
Где можно подробно прочитать об этом.
жив пока jvm жива
источник

AO

Alexey Otts in Kotlin Community
Ну или класслоадер
источник

IN

Ilya Nikolaev in Kotlin Community
Bogdan Panchenko
Буду дома гляну
Привет. Не смотрел?
источник

IN

Ilya Nikolaev in Kotlin Community
Я думаю просто баг репорт заносить.
источник

AN

Alexander Nozik in Kotlin Community
Ramazan
В Котлин есть синглтон object
Он будет жить пока программа не выгрузится из памяти?
И как его убить? Надо ли заботиться об этом?
Где можно подробно прочитать об этом.
заботиться не надо. Но руками его убить ооочень сложно
источник

AN

Alexander Nozik in Kotlin Community
так что хранить там данные не стоит (это в любом случае очень плохая практика).
источник

AO

Alexey Otts in Kotlin Community
Ну рефлексией же изи :peka:
источник

AN

Alexander Nozik in Kotlin Community
Alexey Otts
Ну рефлексией же изи :peka:
И вероятно сломается на JDK 9+ 🤷‍♂️
источник

QH

Quantum Harmonizer in Kotlin Community
Ramazan
В Котлин есть синглтон object
Он будет жить пока программа не выгрузится из памяти?
И как его убить? Надо ли заботиться об этом?
Где можно подробно прочитать об этом.
А откуда мысли о том, что нужно его убивать? Кто такое пропагандирует?
источник

R

Ramazan in Kotlin Community
Quantum Harmonizer
А откуда мысли о том, что нужно его убивать? Кто такое пропагандирует?
Вот интересно было, правильная ли это мысль вообще )
источник

QH

Quantum Harmonizer in Kotlin Community
Ramazan
Вот интересно было, правильная ли это мысль вообще )
Неправильная.
Только я вот хочу знать, кто и где её такую прививает.
источник

R

Ramazan in Kotlin Community
Alexander Nozik
так что хранить там данные не стоит (это в любом случае очень плохая практика).
А почему нет? То есть плохо хранить там базу пока приложение живёт в памяти?
источник