Почему при создании private companion object
в Kotlin статическая переменная Companion
помечается как @Deprecated public
в байт-коде?Это просто обходной путь для «имитации» поведения private
, отговаривающего разработчиков использовать это поле (поскольку общедоступный сопутствующий объект не помечается как устаревший)?
Пример:
Kotlin
class MyClassWithCompanion {
private companion object {
private val FOO = "FOO"
}
}
Байт-код
// DEPRECATED
// access flags 0x20019
public final static LMyClassWithCompanion$Companion; Companion
@Ljava/lang/Deprecated;()