Size: a a a

Kotlin Community

2020 February 11

I

Ivan in Kotlin Community
Как лучше обрабатывать ситуацию, когда с сервера может прийти null, а я хочу, чтоб у меня это поле было Int, а не Int? Т.е. если пришёл null, то класть туда 0.

class(val foo: Int = 0) хватит?

Или придётся через конструктор обрабатывать?
источник

AM

Andrew Mikhaylov in Kotlin Community
Ivan
Как лучше обрабатывать ситуацию, когда с сервера может прийти null, а я хочу, чтоб у меня это поле было Int, а не Int? Т.е. если пришёл null, то класть туда 0.

class(val foo: Int = 0) хватит?

Или придётся через конструктор обрабатывать?
В свете того, что вы не указали, как конкретно превращаете ответ от сервера в модель, отвечу о ручном формировании. Логичнее всего просто писать
val modelField: Int = serverResponse ?: 0
источник

I

Ivan in Kotlin Community
Andrew Mikhaylov
В свете того, что вы не указали, как конкретно превращаете ответ от сервера в модель, отвечу о ручном формировании. Логичнее всего просто писать
val modelField: Int = serverResponse ?: 0
А, да, извиняюсь. У меня Retrofit это делает.
источник

AM

Andrew Mikhaylov in Kotlin Community
Ivan
А, да, извиняюсь. У меня Retrofit это делает.
А фабрика к нему какая? Gson?
источник

I

Ivan in Kotlin Community
Andrew Mikhaylov
А фабрика к нему какая? Gson?
Да
источник

I

Ivan in Kotlin Community
Andrew Mikhaylov
А фабрика к нему какая? Gson?
Она ещё сама нуллы под капотом отбрасывает. Т.е. если у меня в модельке стоит not null, а пришёл null, то краша не будет
источник

QH

Quantum Harmonizer in Kotlin Community
Ivan
Она ещё сама нуллы под капотом отбрасывает. Т.е. если у меня в модельке стоит not null, а пришёл null, то краша не будет
это так только с примитивами :)
источник

I

Ivan in Kotlin Community
Quantum Harmonizer
это так только с примитивами :)
А что она там вместо нуллового инта покладёт?
источник

LS

Leonid Startsev in Kotlin Community
null 🙂
источник

QH

Quantum Harmonizer in Kotlin Community
Ivan
А что она там вместо нуллового инта покладёт?
ничего, там останется начальное значение, оставленное JVM
источник

QH

Quantum Harmonizer in Kotlin Community
а, погодите-ка, или должно быть NPE при анбоксинге?..
источник

LS

Leonid Startsev in Kotlin Community
так анбоксинг только при первом обращении будет, поидее
источник

QH

Quantum Harmonizer in Kotlin Community
Leonid Startsev
так анбоксинг только при первом обращении будет, поидее
при сете в поле, если оно примитивное
источник

LS

Leonid Startsev in Kotlin Community
Int? не примитивный же
источник

BP

Bogdan Panchenko in Kotlin Community
Alexander
так да, работает.. но что-то мне такое решение не особо нравится ;D
может лучше отдельный скоуп заводить в классе где работа выполняется, и его там и мэнэджить
+
источник

BV

Boris Vanin in Kotlin Community
А это только у меня в автокомплите вверх всякая ерунда лезет? тут где-то в интернал зависимостях где-то в апаче что-то там лежит класс String, так я уже задолбался его из импортов удалять
источник

D

Denys in Kotlin Community
Boris Vanin
А это только у меня в автокомплите вверх всякая ерунда лезет? тут где-то в интернал зависимостях где-то в апаче что-то там лежит класс String, так я уже задолбался его из импортов удалять
+ Тоже очень грязный импорт. Иногда и импорт по типу пустой, когда есть подходящие данные.
источник

KD

Konstantin Dovnar in Kotlin Community
Почему все inline у функций IDEA подсвечивает как бяки? Даже саппресcа нет.
источник

BV

Boris Vanin in Kotlin Community
Konstantin Dovnar
Почему все inline у функций IDEA подсвечивает как бяки? Даже саппресcа нет.
Потому что инлайны не нужно делать если не используешь их фичи
источник

KD

Konstantin Dovnar in Kotlin Community
Boris Vanin
Потому что инлайны не нужно делать если не используешь их фичи
А под "их фичами" подразумевается?
Я думал сам инлайнинг функций уже фича:)
источник