Size: a a a

2017 September 17

ES

Eugene Shapovalov in GitFox
Konstantin Tskhovrebov
зачем поле абстрактоное?
получается, что его необходимо проинициазировать в объявлении?
источник

KT

Konstantin Tskhovrebov in GitFox
а я о чем вам писал?
источник

KT

Konstantin Tskhovrebov in GitFox
Konstantin Tskhovrebov
Это вытекающее следствие. Если вы создадите базовый класс с final полями, то их надо будет проинициализировать.

Поэтому есть красивый финт:
1) вы делаете приватное поле и объявляете его нулл
2) но оно не нуллабл по документации! Gson плевать на то что оно файнал, он легко его перепишет (рефлексия)
3) для получения этого поля пишется field get() = _field!! - это даст нам ненуллабл поле
?
источник

ES

Eugene Shapovalov in GitFox
я не понял, что это относится к обсуждению вопроса с конструктором
источник

KT

Konstantin Tskhovrebov in GitFox
теперь все прояснилось?
источник

ES

Eugene Shapovalov in GitFox
да, спасибо
источник

ES

Eugene Shapovalov in GitFox
рили крутые советы
источник

ES

Eugene Shapovalov in GitFox
а получается, что data класс это сам делает за нас?
источник

KT

Konstantin Tskhovrebov in GitFox
дата класс нельзя создать без конструктора
источник

KT

Konstantin Tskhovrebov in GitFox
поэтому поля не надо инициализировать
источник

ES

Eugene Shapovalov in GitFox
так а проблема с non-null она же остаётся для них?
источник

KT

Konstantin Tskhovrebov in GitFox
нет, почему?
источник

KT

Konstantin Tskhovrebov in GitFox
если есть конструктор, то нулл подставить не удастся
источник

ES

Eugene Shapovalov in GitFox
все поля, которые инициализируются через констуктор и не помечены как Type?, автоматически являются non-null?
источник

KT

Konstantin Tskhovrebov in GitFox
а что по вашему значит "?" у типа?)))
источник

KT

Konstantin Tskhovrebov in GitFox
источник
2017 September 18

ES

Eugene Shapovalov in GitFox
nullable
источник

KT

Konstantin Tskhovrebov in GitFox
а его отсутствие? :)
источник

KT

Konstantin Tskhovrebov in GitFox
котлин позволяет описать филды класса прямо в конструкторе (не дублируя код)
источник

KT

Konstantin Tskhovrebov in GitFox
соответственно если в конструкторе написать, что поле non-nullable, оно таким и будет
источник