Описание тега kotlin-companion

2 ответа

Сопутствующий объект с функцией расширения в kotlin?

Я хотел бы иметь функцию расширения и использовать logger из kotlin-logging и иметь константы внутри объекта-компаньона. Моя функция: fun String.toFoo(): Foo { logger.debug { "Mapping [$this] to Foo" } if(MY_CONST.equals(this) { ... } Вопрос, где я …
3 ответа

Какой смысл называть объект-компаньон в kotlin

Документация для сопутствующих объектов имеет следующий пример class MyClass { companion object Factory { fun create(): MyClass = MyClass() } } Вот Factory это имя объекта-компаньона. Затем он продолжает говорить: Имя объекта-компаньона может быть о…
24 авг '17 в 05:18
0 ответов

В kotlin, что является правильным для CREATOR в классе Parcelable

С котлин, имеющий Data реализует класс Parcelable Кажется, есть два способа определения CREATOR: Parcelable в компаньоне: 1. data class Data ( @SerializedName("id") val id: String?, @SerializedName("blob") val blob: String? ) : Parcelable { ... ... …
28 сен '18 в 16:13
1 ответ

Глобальный регистратор в Котлине

В настоящее время я работаю над относительно крупным проектом в Котлине. Я хотел бы реализовать метод ведения журналов, однако по многим причинам (в частности, потому что мне нужен очень специфический тип управления часами и широкий набор приложений…
21 янв '19 в 05:09
1 ответ

Kotlin Распределение памяти для класса объекта и объекта-компаньона

Kotlin предоставляет лучший способ создания одноэлементного объекта и сопутствующего объекта для доступа к члену класса через имя класса. Круто это!! Но как распределение памяти работает для обоих объявлений, работает ли это так же, как статическое …
2 ответа

Инициализируйте ImageView в сопутствующем объекте Kotlin

Я пытаюсь инициализировать ImageView в сопутствующем объекте, поскольку я хочу, чтобы методы были статическими, но у меня есть ошибка, есть ли альтернативный подход ниже, мой код companion object { lateinit var bufferingAnimation : LoadingAnimation …
23 фев '18 в 04:03
1 ответ

Котлин установил переменную и вызвал метод в главном классе из сопутствующего объекта

Я новичок в Kotlin, и я не понимаю, если / как я могу вызвать функцию или установить переменную из объекта-компаньона: class MyClass { public var myVar: Boolean public fun myFunc(): Int { ... } companion object { private fun doStuff(){ myVar = true …
11 май '18 в 09:13
0 ответов

Экземпляр в сопутствующем объекте

Я не могу получить доступ к var mBleWrapper: BleWrapper? = ноль в других видах деятельности. Существует предопределенный интерфейс Java под названием BleWrapperUiCallbacks, который, как я подозреваю, содержит необходимые мне функции и класс Java Ble…
1 ответ

Как сохранить ссылку на объект класса singleton в сопутствующем объекте, Kotlin

Код, который я хочу преобразовать, выглядит следующим образом; public class AndroidLauncher extends AndroidApplication { public static AndroidLauncher androidLauncher; @Override protected void onCreate (Bundle savedInstanceState) { super.onCreate(sa…
1 ответ

Является ли Kotlin Companion Object просто способом добавления функций из интерфейса?

Я читаю книгу Kotlin in Action и пытаюсь лучше понять объекты-компаньоны. Существуют ли другие варианты использования объектов-компаньонов, кроме добавления реализаций методов из интерфейса / абстрактного класса? Я наткнулся на способ создания объек…
23 сен '18 в 11:03
5 ответов

Почему мы используем "объект-компаньон" в качестве замены статических полей Java в Kotlin?

Что подразумевается под "сопутствующим объектом"? До сих пор я использовал его только для замены Java static когда мне это нужно. Я смущен с: Почему это называется "компаньон"? Означает ли это, что для создания нескольких статических свойств я долже…
14 июл '16 в 18:35
1 ответ

Утечка памяти в сопутствующих объектах Kotlin?

Я использую Kotlin для разработки под Android. Интересный вопрос. В Java сохранение контекста в статическом поле - это утечка памяти. Но если я храню контекст в сопутствующем объекте Kotlin, Android Studio не говорит, что это утечка памяти. Это знач…
31 авг '18 в 13:41
1 ответ

Поле статической константы Kotlin, возвращающее измененное значение String

Я пытаюсь достичь постоянного строкового значения имени класса. Но я действительно не понимаю, почему я получаю измененное значение String. Вот код, над которым я работаю: class TestClass { companion object { @JvmField val TAG1: String = this::class…
1 ответ

Как получить доступ к внешнему классу ' javaClass.simpleName из объекта-компаньона в Kotlin?

Я хотел бы иметь возможность доступа к simpleName моего класса из его сопутствующего объекта. Я хотел бы это: val o1 = Outer("foo") val o2 = Outer("bar") распечатать следующий вывод: Outer: hello Outer: foo Outer: bar Фактический вариант использован…
2 ответа

Как вызвать метод фабрики компаньонов Kotlin, используя callBy()?

У меня есть код принимает класс в качестве параметра и подготавливает данные для вызова конструктора для этого класса метода фабрики сопутствующих объектов, если присутствует фабричный метод. Все работает нормально при вызове конструктора, но я полу…
22 фев '19 в 10:44
3 ответа

Преимущества сопутствующих объектов в возможности реализации интерфейсов

Почему в сопутствующих объектах Kotlin/Scala реализованы некоторые интерфейсы, какие преимущества это может иметь? Когда полезно использовать эту функцию?
5 ответов

Почему и когда использовать @JvmStatic с сопутствующими объектами?

Я пытаюсь понять разницу между использованием / не использованием @JvmStatic и тем, когда мне следует использовать любой из них. Итак, с Kotlin и Java я могу сделать это: TestKotlin.kt class TestKotlin { companion object { val someString = "hello wo…
14 фев '18 в 05:05
0 ответов

Ограничение объекта-компаньона Kotlin относительно отражения и наследования

Предполагать: Мне нужно много сопутствующих (статических) методов для подклассов Parent Мне нужно много методов (нестатических) для подклассов Parent У меня есть более 50 подклассов Parent clazz и некоторые другие поля должны вычисляться для каждого…
1 ответ

Как получить доступ к сопутствующим объектам Kotlin из Java

У меня есть этот класс Kotlin: class Storage { companion object { val COL_ID = "id" } } и я хочу использовать COL_ID в моем коде Java: doSomething(Storage.COL_ID); но компилятор говорит мне, что COL_ID это личное. Я пытался добавить public для всех …
23 мар '19 в 17:16
1 ответ

Какая разница, если Companion.foo находится в объекте-компаньоне?

В Kotlin, если у меня есть функция в сопутствующем объекте с Companion. в качестве префикса (Companion.foo), какая разница по сравнению с foo внутри объекта-компаньона? Я заметил, что в следующем коде Companion.foo сделает его невидимым для внешней …
15 окт '19 в 07:49