Size: a a a

Kotlin Community

2020 March 27

AM

Andrew Mikhaylov in Kotlin Community
Bogdan Panchenko
Интересные типы идея начала выдавать при нажатии Ctrl + Shift + P. Или я раньше не замечал
Есть такое, я уже удивился литералам целочисленным с недельку назад :)
источник

PE

Pavel Erokhin in Kotlin Community
Bogdan Panchenko
А ты обновил плагин до 1.4 ? Это тулл идеи, она может помочь мигрировать между версиями библиотек, ищи вкладку миграции
Плагин да. Понял, спасибо.
источник

PE

Pavel Erokhin in Kotlin Community
А какой стиль наименования полей в enum class (или как эти "поля" называются правильнее)? Pascal case или капсом?
источник

AL

Alexander Levin in Kotlin Community
Pavel Erokhin
А какой стиль наименования полей в enum class (или как эти "поля" называются правильнее)? Pascal case или капсом?
Оба нормально: https://kotlinlang.org/docs/reference/coding-conventions.html#property-names (последняя часть про енамы)
источник

AL

Alexander Levin in Kotlin Community
*если речь про сами элементы енама. Проперти в них как обычно, lowerCamelCase
источник

PE

Pavel Erokhin in Kotlin Community
Да, про сами элементы enum
источник

AL

Alexander Levin in Kotlin Community
Тогда да, просто предлагается выбирать в зависимости от случая, оба варианта (UpperCamelCase и UPPER_SNAKE_CASE) окей
источник

PE

Pavel Erokhin in Kotlin Community
Ну короче, "как захочется", главное что бы что-то одно из этого было в проекте
источник

PE

Pavel Erokhin in Kotlin Community
Спасибо
источник

PE

Pavel Erokhin in Kotlin Community
А как такое получается что вот kclass является дочерним классом по отношению к интерфейсу, а при касте к интерфейсу  получаю исключение class cast exception.

Проверяю так
kclazz.isSubclassOf(IConfiguration::class)

Пробую кастить так, перед каст выполняю если он является дочерним классом по отношению к IConfiguration
kclazz as IConfiguration<*>
источник

VP

Vladimir Petrakovich in Kotlin Community
Pavel Erokhin
А как такое получается что вот kclass является дочерним классом по отношению к интерфейсу, а при касте к интерфейсу  получаю исключение class cast exception.

Проверяю так
kclazz.isSubclassOf(IConfiguration::class)

Пробую кастить так, перед каст выполняю если он является дочерним классом по отношению к IConfiguration
kclazz as IConfiguration<*>
Вы класс что ли кастите, а не объект этого класса?
источник

PE

Pavel Erokhin in Kotlin Community
Vladimir Petrakovich
Вы класс что ли кастите, а не объект этого класса?
а как проверить можно?
источник

PE

Pavel Erokhin in Kotlin Community
По идее объект
источник

VP

Vladimir Petrakovich in Kotlin Community
Pavel Erokhin
а как проверить можно?
Проверить что? Проверка-то вроде правильная (по описанию), но вот дальше вы что-то странное делаете.
источник

AM

Andrew Mikhaylov in Kotlin Community
Pavel Erokhin
а как проверить можно?
kclazz -- это должно быть на выходе IConfiguration<*> или KClass<IConfiguration<*>>?
источник

PE

Pavel Erokhin in Kotlin Community
на выходе  IConfiguration<*>, должно быть, после каста
источник

AM

Andrew Mikhaylov in Kotlin Community
Тогда непонятно, откуда у него взялся метод isSubclassOf.
источник

PE

Pavel Erokhin in Kotlin Community
Andrew Mikhaylov
Тогда непонятно, откуда у него взялся метод isSubclassOf.
kotlin reflect
источник

AM

Andrew Mikhaylov in Kotlin Community
KClass<T> к T, очевидно, не кастится
источник

PE

Pavel Erokhin in Kotlin Community
Сделал короче так
источник