когда есть аннотация @JvmInline И когда ее нет на value классе ?
написано в доке к @JvmInline
value class Name(val s: String) fun sayMyName(name: Name) { println(name.s) } После установки соответствующей аннотации на тип Name функция sayMyName в байткоде начнёт принимать строку напрямую, без необходимости создавать и передавать туда объект Name, в который эта строка была бы завёрнута.
так это и для старых инлайн-классов верно, и для value-классов вне зависимости от аннотаций
Value-классы без этой аннотации, насколько я понимаю, ничего не делают, кроме запрета обращаться к айдентити. Бывший inline class — это именно @JvmInline value class. @ilmirus я ж не чепуху несу, правда?
Да, всё так. Value классов в языке пока нет. Только инлайн классы.
В том, что без нее не работает
Обсуждают сегодня