Size: a a a

Kotlin Community

2020 February 17

k

kirill in Kotlin Community
Victor Demihov
Хотя, в Java всегдаработает такой подходи.
Alt enter
источник

AN

Alexander Nozik in Kotlin Community
https://discuss.kotlinlang.org/t/fyi-kotlin-programs-on-benchmarks-game/16360
Benchmark game Kotlin обижает. Причем путем наглого обмана.
источник

VP

Vladimir Petrakovich in Kotlin Community
Да уже обсуждали эти "бенчмарки"
источник

AO

Alexey Otts in Kotlin Community
Михаил
Возможно подойдет что нибудь типа ReetrantLock (имплементация мьютекса в джаве)
Это оверхед, если нужно только эксклюзивно обновить состояние
источник

М

Михаил in Kotlin Community
Alexey Otts
Это оверхед, если нужно только эксклюзивно обновить состояние
Зависит от кейса, если например там надо несколько полей внутри класса обновить, то удобнее лок
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexey Otts
Это оверхед, если нужно только эксклюзивно обновить состояние
Ну не всегда его можно/целесообразно обновить атомиками
источник

AO

Alexey Otts in Kotlin Community
Михаил
Зависит от кейса, если например там надо несколько полей внутри класса обновить, то удобнее лок
use immutable data structures smekalochka.jpg
источник

AO

Alexey Otts in Kotlin Community
atomic + immutable data class
источник

AO

Alexey Otts in Kotlin Community
Но это конечно всё про вопрос контеншинов и необходимого перфоманса
источник

AO

Alexey Otts in Kotlin Community
Локи проще в плане разработки
источник

М

Михаил in Kotlin Community
Alexey Otts
use immutable data structures smekalochka.jpg
Ну вопрос был про объект который может менять свое состояние, то бишь mutable
источник

Y

Yanis in Kotlin Community
ловлю вот такие краши в дата классе
Fatal Exception: java.lang.NullPointerException
Attempt to read from field 'float com.xxx.xxx.xxx.i$c.c' on a null object reference

причем это поле val ratio: Float
как такое может быть?
источник

Y

Yanis in Kotlin Community
краш видно на чтении этой переменной
источник

Y

Yanis in Kotlin Community
понятное дело ни какой рефлексией я это поле не обнуляю
источник

AE

Alexandr Emelyanov in Kotlin Community
не помешал бы код класса, как создается инстанс и как возникает проблема, т.е. в каком коде
источник

Y

Yanis in Kotlin Community
все очень примитивно
class PointData(
   val distance: Float,
   val ratio: Float
)

PointData(point.distance, ratio)

val numberWidthPercentFixed = numberWidthPercent * pointData.ratio
источник

AM

Andrew Mikhaylov in Kotlin Community
Да я тоже сразу хотел про рефлексию заикнуться, но там же примитив. Точно NPE по полю, не по чему-то другому по дороге до этого поля?
источник

Y

Yanis in Kotlin Community
тут сам факт NullPointerException вводит в ступор, котлин ведь гарантирует нам отсутстивие NullPointerException
источник

VP

Vladimir Petrakovich in Kotlin Community
Yanis
ловлю вот такие краши в дата классе
Fatal Exception: java.lang.NullPointerException
Attempt to read from field 'float com.xxx.xxx.xxx.i$c.c' on a null object reference

причем это поле val ratio: Float
как такое может быть?
Возможно, что геттер был заинлайнен, и null случился при доступе к pointData
источник

Y

Yanis in Kotlin Community
да, по стектрейсу видно что именно это поле
источник