Я заметил, что Kotlin создает сеттер для var и задает значение через setter, а не устанавливает его напрямую. Можем ли мы сделать сеттер встроенным ? или установить значение напрямую, не создавая метод private setter по умолчанию?
lateinit var name: String private set
Вы можете аннотировать значение с @JvmField
аннотации @JvmField
чтобы инструктировать компилятор kotlin не генерировать пару геттер / сеттер для него:
@JvmField private var name: String = "Joshua"
Кроме того, для vals, если у вас есть private val
, компилятор не будет генерировать getter для него и создать байт-код, который будет иметь его как обычное поле.