Описание тега companion-object
In [tag:Scala], an object with the same name as a class, used to hold utility members for the class
1
ответ
В чем разница между классом с сопутствующим объектом и классом и объектом с одинаковым именем?
"Сопутствующий объект" класса Scala можно рассматривать как одноэлементный объект с тем же полностью определенным именем, что и у класса (то есть с тем же именем в том же пакете). Они используются для хранения служебных функций, общих для всех экзем…
22 июл '12 в 22:01
1
ответ
Убедитесь, что параметрический тип имеет сопутствующий объект
Я хотел бы сделать что-то вроде этого (и, пожалуйста, не спрашивайте почему): trait A[T /* tell that there exists companion for T */] { def f = T.g } Можно ли этого добиться?
18 ноя '17 в 14:56
1
ответ
Завод Scala игнорируется компилятором?
Я потратил все это время, собирая метод фабрики в моем объекте-компаньоне, вот так: class Stuff(val a: Int, val b: Long) { this() = this(0,0L) } object Stuff { def apply(a:Int, b:Int) = new Stuff(a, b.toLong) } Но когда я подумал, что убиваю его, я …
22 авг '12 в 05:47
2
ответа
Когда использовать фабрику сопутствующих объектов по сравнению с новым ключевым словом
Многие классы в стандартной библиотеке Scala используют apply() их сопутствующий объект как фабрика. Это часто удобно, когда цепочки вызовов, такие как List(List(1)), С другой стороны, все еще возможно создавать объекты непосредственно с new (new Ha…
28 авг '15 в 20:48
1
ответ
Классификатор JSONObject не имеет объекта-компаньона и поэтому должен быть здесь инициализирован
import org.json.JSONObject JSONObject deviceInformation = ... Я пытался создать объект-компаньон, как это, но на самом деле не работает... извините, довольно нуби в Java и Kotlin.... и да, JSONObject правильно импортируется с import org.json.JSONObj…
10 окт '18 в 17:54
1
ответ
Сопутствующий объект как фабрика в Scala
Я только начинаю со Scala и работаю над некоторыми уроками. Я наткнулся на объект-компаньон и использовал их как фабрику. Я попробовал несколько вещей. Однако я не получаю следующее, чтобы работать должным образом. Не могу получить мою голову вокруг…
02 июн '13 в 19:21
1
ответ
Когда неявный объект импортируется из объекта-компаньона?
Я знаю, что это уже сотый вопрос о имплицитах / сопутствующих объектах. Однако я нигде не нашел этот случай. В "Tryout", почему A не требуется импорт для неявного класса, а B это нужно? Thankx. class LongConsumer { def consume(l: Long) = Unit } case…
15 июл '14 в 06:33
3
ответа
Создайте сопутствующий объект, который смешивается в признаке, определяющем метод, который возвращает объект класса сопутствующего объекта.
Абстрактная проблема: Создайте признак, который можно смешать с сопутствующим объектом класса, чтобы дать этому объекту метод, который возвращает объект этого класса. Конкретная проблема: я пытаюсь создать группу классов для использования с вызовами…
16 мар '16 в 14:53
1
ответ
Сопутствующие объекты скрывают класс - ошибка или особенность?
В Kotlin следующий код кажется разумным: data class Foo(val bar: String) { fun combine(other: Foo): Foo { return Foo(bar + other.bar) } companion object Foo { fun someHelper() {} } } Тем не менее, он не компилируется: тип Foo привязывается к Foo.Foo…
26 мар '17 в 15:35
2
ответа
Передача универсального сопутствующего объекта в супер конструктор
Я пытаюсь построить trait и abstract class подтипить сообщениями (в среде воспроизведения Akka), чтобы я мог легко преобразовать их в Json, Что сделали до сих пор: abstract class OutputMessage(val companion: OutputMessageCompanion[OutputMessage]) { …
21 янв '19 в 16:01
2
ответа
Сопутствующий объект с функцией расширения в kotlin?
Я хотел бы иметь функцию расширения и использовать logger из kotlin-logging и иметь константы внутри объекта-компаньона. Моя функция: fun String.toFoo(): Foo { logger.debug { "Mapping [$this] to Foo" } if(MY_CONST.equals(this) { ... } Вопрос, где я …
29 янв '19 в 14:23
1
ответ
Синглтон - init не вызывается
Я хочу создать синглтон в Kotlin, поэтому я сделал объект-компаньон следующим образом: companion object { val INSTANCE = MessagesManager() } Есть кое-что, что я хочу сделать в его конструкторе, поэтому я написал некоторый код в функции init, но он н…
13 фев '19 в 11:04
3
ответа
Фабричный дизайн шаблона в Scala с кейсом
Я пытаюсь реализовать шаблон проектирования фабрики в Scala, используя методы apply, доступные для объекта-компаньона. У меня есть следующий подход. sealed trait MyType { def param: String } case class TypeA(param: String) extends MyType case class …
05 сен '14 в 13:25
1
ответ
Доступ к переменной класса-компаньона из другого класса
Я действительно новичок в скале. Я пытаюсь получить доступ к переменной класса компаньона за пределами класса. Как мне это сделать, если это вообще возможно без создания экземпляра класса. В следующем примере я могу получить доступ к INTERNAL_COST_R…
09 июл '15 в 09:49
2
ответа
Сопутствующий объект не может получить доступ к закрытой переменной класса
Довольно странное поведение, исходящее из Scala REPL. Хотя следующее компилируется без проблем: class CompanionObjectTest { private val x = 3 } object CompanionObjectTest { def testMethod(y:CompanionObjectTest) = y.x + 3 } приватная переменная, каже…
02 авг '11 в 23:30
1
ответ
Почему я не вижу компонент сопутствующего объекта расширенного класса?
У меня есть абстрактный класс: abstract class Vec2t и расширяющийся класс: class Vec2 : Vec2t Vec2t имеет следующий объект-компаньон: companion object { @JvmField val length = 2 } Но когда я печатаю Vec2.length затем он помечается как неразрешенная …
04 мар '17 в 09:40
2
ответа
Как заменить статические переменные доступными средствами в базовом классе?
Что мне нужно: trait Base { import scala.math.{Pi=>mPi, cos=>msoc, sin=>msin} static val Pi : Float = mPi.toFloat static def cos(phi : Float) : Float = mcos(phi).toFloat static def sin(phi : Float) : Float = msin(phi).toFloat // ... // some…
12 янв '13 в 15:23
2
ответа
Закрытое значение класса Scala недоступно в сопутствующем объекте.
У меня есть класс Scala и его сопутствующий объект (в Client.scala) следующим образом: class Client(val key: Int) { private val num_bits = 5 } object Client { val count_entries = Math.pow(2, num_bits).toInt println(count_entries) } Тем не менее, он …
10 окт '17 в 15:50
1
ответ
В Scala как получить доступ к приватному конструктору класса case из его сопутствующего объекта
У меня определен следующий код (в Scala IDE/Scala Worksheet с Scala 2.10): object WorkSheet1 { object A { def apply(s: String, huh: Boolean = false): A = A(s) } case class A (s: String) //case class A private (s: String) val a = A("Oh, Hai") } И я у…
04 окт '13 в 21:13
2
ответа
Могу ли я в Scala объявить класс внутри объекта-компаньона?
Во время борьбы с моим личным неизменяемым конструктором класса и ограничением, которое вспомогательные конструкторы должны вызывать друг друга в качестве первого оператора, без чего-либо еще из класса в области видимости, я, похоже, вынужден исполь…
05 дек '14 в 17:07