Size: a a a

Kotlin Community

2020 April 25

QH

Quantum Harmonizer in Kotlin Community
Alexander Levin
А так, если не туплю, это не однострочник будет?
inline fun <reified T> Array<T>.newOfSameType(size: Int) = arrayOfNulls<T>(size)
у меня нет reified T, я нахожусь в List<E>.toArray<T>(array: Array<T>): Array<T>
источник

QH

Quantum Harmonizer in Kotlin Community
Alexander Levin
Ну т.е. вопрос насколько полезна функция, которая либо только с nullable типами работает, либо приводит к nullable типу.
не понял, при чём здесь nullable
источник

AL

Alexander Levin in Kotlin Community
Quantum Harmonizer
не понял, при чём здесь nullable
Ну, если ты не скопируешь элементы и не попросишь сразу заполнить, то на выходе у тебя будет массив с кучей null, который не очень хорошо возвращать как массив non-nullable типов.
источник

QH

Quantum Harmonizer in Kotlin Community
Alexander Levin
Ну, если ты не скопируешь элементы и не попросишь сразу заполнить, то на выходе у тебя будет массив с кучей null, который не очень хорошо возвращать как массив non-nullable типов.
Пусть возвращает T?, вообще не проблема
источник

QH

Quantum Harmonizer in Kotlin Community
sidenote: если наследовать не AbstractList, а List, то toArray генерируются компилятором, как bridge-методы
источник
2020 April 26

GK

Gennady Kurbesov in Kotlin Community
Почему так нельзя?)
Мне нужен конвертер енамов для Room и хотел написать один конвертер, который будет принимать тип енама, что бы не писать для каждого отдельный конвертер, и что бы не перечислять ограничения для T каждый раз, если будут енамы новые добавляться.

Как можно решить эту проблему?
источник

QH

Quantum Harmonizer in Kotlin Community
Gennady Kurbesov
Почему так нельзя?)
Мне нужен конвертер енамов для Room и хотел написать один конвертер, который будет принимать тип енама, что бы не писать для каждого отдельный конвертер, и что бы не перечислять ограничения для T каждый раз, если будут енамы новые добавляться.

Как можно решить эту проблему?
<T : Enum<T>
источник

GK

Gennady Kurbesov in Kotlin Community
Quantum Harmonizer
<T : Enum<T>
из строки в енам всё-равно не получается
источник

AN

Alexander Nozik in Kotlin Community
Gennady Kurbesov
из строки в енам всё-равно не получается
Типы стираются. Нужен явный тип или реификация. В случае с енумами по-моему только реификация
источник

QH

Quantum Harmonizer in Kotlin Community
можно Class ещё
источник

AN

Alexander Nozik in Kotlin Community
Quantum Harmonizer
можно Class ещё
в смысле EnumClass явно передать?
источник

QH

Quantum Harmonizer in Kotlin Community
Alexander Nozik
в смысле EnumClass явно передать?
ага, якобы T::class.java
источник

GK

Gennady Kurbesov in Kotlin Community
а я могу получить массив значенией enum class, если имеется только тип?
источник

AN

Alexander Nozik in Kotlin Community
Gennady Kurbesov
а я могу получить массив значенией enum class, если имеется только тип?
Надо явно тип передать. Причем как верно заметил @Harmonizr, тип нужен джавовый.
источник

QH

Quantum Harmonizer in Kotlin Community
мне кажется, вопрос решается гуглингом «room store enum as string»
источник

GK

Gennady Kurbesov in Kotlin Community
Quantum Harmonizer
мне кажется, вопрос решается гуглингом «room store enum as string»
пробовал искать, но попадались конкретные решения на примере одного enum
источник

AK

Andrei Kravz in Kotlin Community
хай, знатоки) у меня тут казуальный вопросик. как можно иначе оформить подобный код?
var title: String? = null
if (title == null && extras.containsKey(Notification.EXTRA_TITLE))
   title = extras.getString(Notification.EXTRA_TITLE)
if (title == null && extras.containsKey(Notification.EXTRA_TITLE_BIG))
   title = extras.getString(Notification.EXTRA_TITLE_BIG)
источник

AE

Alexandr Emelyanov in Kotlin Community
var title: String? =  extras.getString(Notification.EXTRA_TITLE) ?: extras.getString(Notification.EXTRA_TITLE_BIG)
источник

AE

Alexandr Emelyanov in Kotlin Community
Alexandr Emelyanov
var title: String? =  extras.getString(Notification.EXTRA_TITLE) ?: extras.getString(Notification.EXTRA_TITLE_BIG)
источник

AK

Andrei Kravz in Kotlin Community
Alexandr Emelyanov
var title: String? =  extras.getString(Notification.EXTRA_TITLE) ?: extras.getString(Notification.EXTRA_TITLE_BIG)
зай, выглядит супер.
источник