1. Общий обзор В этом руководстве мы рассмотрим аннотацию @JvmField в Kotlin.
В Kotlin свой подход к классам и свойствам, который отличается от подхода, используемого в Java. Аннотация @JvmField позволяет добиться совместимости между двумя языками. 2. Объявление поля По умолчанию классы Kotlin предоставляют доступ не к полям, а к свойствам.
Язык автоматически предоставляет дополнительные поля для свойств, которые будут сохранять свои значения в виде поля: class CompanionSample {
var quantity = 0
set(value) {
if(value >= 0) field = value
}
} Это простой пример, но при использовании декомпилятора Kotlin в IntelliJ (Инструменты > Kotlin > Показать декомпилятор Kotlin) мы увидим, как это будет выглядеть в Java: public class JvmSample {
private int quantity;
// custom getter
public final void setQuantity(int value) {
if (value >= 0) {
this.quantity = value;
}
}
} Однако это не значит, что у нас вообще не может быть полей, есть опред