Size: a a a

Kotlin Community

2020 September 03

QH

Quantum Harmonizer in Kotlin Community
Дмитрий
поясните пожалуйста, не совсем понимаю как, запрещено же из-за java родителя

хотя всёравно если столько же кода смысла не сильно много... хотя от мапы избавиться и кучи ключей
источник

Д

Дмитрий in Kotlin Community
это я уже итак открыл
источник

BP

Bogdan Panchenko in Kotlin Community
Ну или ваш вариант либо как Миша говорит, лучше врятли можно сделать
источник

Д

Дмитрий in Kotlin Community
так котлин же не даёт создать филд такой, сорри ребят я не понимаю другого вариант)
источник

QH

Quantum Harmonizer in Kotlin Community
Дмитрий
так котлин же не даёт создать филд такой, сорри ребят я не понимаю другого вариант)
private var _something: Something =
   super.getSomething()
override fun getSomething(): Something =
   _something
override fun setSomething(s: Something) {
   _something = s
}
источник

Д

Дмитрий in Kotlin Community
спасибо
источник

PS

Petr Stroganov in Kotlin Community
Дмитрий
день добрый, в котлине есть проблема с переопределением геттеров родительского  java класса. У меня есть интерфейс с кучей геттеров и родитель. Надо добавить сеттеры, и в случае если значение не установлено вызывать уже родительский геттер, Просто добавить аналогичные поля Котлин не даёт - ...following declaration have the same JVM signature. Реализовал через HashMap<Key,Any?> и getOrDefault где у каждого геттера свой ключ, но это какая-то.... лажа... Как-то эту проблему можно по человечески обойти?
Если у вас data class, то можно вроде через аннотацию типа @JvmName поменять сигнатуру геттера, который будет сгенерирован, но сам филд останется override.
Не могу сейчас код привести полноценный, но что-то типа
@get:JvmName(“getSmth”) override val smth: Int

Есть issue на youtack
https://youtrack.jetbrains.com/issue/KT-6653
источник

Д

Дмитрий in Kotlin Community
Petr Stroganov
Если у вас data class, то можно вроде через аннотацию типа @JvmName поменять сигнатуру геттера, который будет сгенерирован, но сам филд останется override.
Не могу сейчас код привести полноценный, но что-то типа
@get:JvmName(“getSmth”) override val smth: Int

Есть issue на youtack
https://youtrack.jetbrains.com/issue/KT-6653
тогда геттер не будет иметь отношения к интерфейсу, мне это не подходит, да видел я это issue)
источник

PS

Petr Stroganov in Kotlin Community
Дмитрий
тогда геттер не будет иметь отношения к интерфейсу, мне это не подходит, да видел я это issue)
А, видимо я не до конца понял ситуацию, извиняюсь
источник

QH

Quantum Harmonizer in Kotlin Community
инвестирует? С этим в @android_ru
источник

PE

Pavel Erokhin in Kotlin Community
в биток наверное инвестирует :)
источник

RI

Ruslan Ibragimov in Kotlin Community
В 1.4 все еще не пофиксили val a: String?? = null
источник

VP

Vladimir Petrakovich in Kotlin Community
Ruslan Ibragimov
В 1.4 все еще не пофиксили val a: String?? = null
А что за проблема с ним?
источник

RI

Ruslan Ibragimov in Kotlin Community
Vladimir Petrakovich
А что за проблема с ним?
Та же что и с throw throw throw) - на скорость не влияет, но по идеи такой код не должен компилиться
источник

AL

Alexander Levin in Kotlin Community
Ruslan Ibragimov
Та же что и с throw throw throw) - на скорость не влияет, но по идеи такой код не должен компилиться
Ну, как воспринимать, мне кажется. Оба примерно в целом понятно почему может компиляться. Warning'и в идее тоже есть.
источник

VP

Vladimir Petrakovich in Kotlin Community
Ruslan Ibragimov
Та же что и с throw throw throw) - на скорость не влияет, но по идеи такой код не должен компилиться
Ну подобных бессмысленных конструкций можно много придумать, стоит ли ради них делать костыли в грамматике
источник

VP

Vladimir Petrakovich in Kotlin Community
Ruslan Ibragimov
В 1.4 все еще не пофиксили val a: String?? = null
Мне больше интересно, почему тут так сложно, зачем отдельные приватные свойства
источник

VP

Vladimir Petrakovich in Kotlin Community
Ну и зачем кто-то написал ??
источник

RI

Ruslan Ibragimov in Kotlin Community
Это сгенеренный код
источник

AM

Andrew Mikhaylov in Kotlin Community
Ruslan Ibragimov
В 1.4 все еще не пофиксили val a: String?? = null
Так это ж страшный breaking change :)
источник