Комментарии 1
Сложности с компаньоном
Для того, чтобы в Java константы виделись так же как и раньше, есть аннотация @JvmStatic. Работает тоже только для примитивов и String, для остальных создаётся getter.
companion object {
@JvmStatic val CONST1: String = "Const1"
const val CONST2: String = "Const2"
}
Но при этом константа становится приватной и доступна только из того же пакета. Для внешнего доступа создаётся тот же getter, что и обычно
@NotNull
private static final String CONST1 = "Const1";
@NotNull
public static final String CONST2 = "Const2";
public static final class Companion {
/** @deprecated */
// $FF: synthetic method
@JvmStatic
public static void CONST1$annotations() {
}
@NotNull
public final String getCONST1() {
return Test.CONST1;
}
private Companion() {
}
// $FF: synthetic method
public Companion(DefaultConstructorMarker $constructor_marker) {
this();
}
}
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Чему я научился, конвертируя проект в Kotlin при помощи Android Studio