121得票7回答
在Scala中,为什么要使用伴生对象?

是否存在需要为类创建伴生对象(单例)的情况?为什么我要创建一个名为Foo的类,并为其创建一个伴生对象呢?

119得票6回答
Kotlin:类中“object”和“companion object”的区别。

在 Kotlin 的类中,对象和伴生对象有什么区别? 示例:class MyClass { object Holder { //something } companion object { //something } } 我...

79得票3回答
Scala的apply()方法魔法是如何工作的?

在Scala中,如果我在类或顶层对象中定义了一个名为apply的方法,那么当我给该类的实例追加一对括号并在它们之间放置适当的参数用于apply()时,该方法将被调用。例如:class Foo(x: Int) { def apply(y: Int) = { x*x + y...

48得票6回答
在 Kotlin 中的伴生对象中访问应用程序上下文。

在Android Kotlin中,我们如何在伴生对象中访问应用程序上下文? 我有一个位于抽象类内部的伴生对象,我想要访问上下文以读取共享首选项,但是我无法获取上下文。 更新: 我正在一个Android库中使用这个东西,而且我正在处理的类是抽象的。

38得票4回答
为什么case类的伴生对象要扩展FunctionN?

当你创建一个 case class 时,编译器会自动生成一个相应的伴生对象,其中包含一些 case class 特性:apply 工厂方法匹配主构造函数、equals、hashCode 和 copy。 有点奇怪的是,这个生成的对象扩展了 FunctionN。scala> case cl...

35得票8回答
如何谈论伴生对象和常规对象?

我第一次教授Scala,我的学生们发现伴生对象中涉及的“双关语”非常令人困惑。考虑以下示例:class Stack { ... methods such as push/pop } object Stack { ... factory method(s) and possibly o...

21得票3回答
在 Kotlin 中如何访问伴生对象之外的方法?

我对Kotlin还比较陌生,想知道在伴生对象中访问位于伴生对象之外的方法和变量是否可能,以及这是否违反最佳实践。 例如:class A { fun doStuff(): Boolean = return true companion object{ publ...

21得票5回答
Android/Kotlin: 错误:"Expecting a top level declaration > Task :app:buildInfoGeneratorDebug"。

我正在尝试编写一个用于管理SQLite数据库的类,但是我遇到了错误信息“Expecting a top level declaration > Task :app:buildInfoGeneratorDebug”。 package com.xexxxwxxxxs.GMP impo...

20得票2回答
一个私有类的伴生对象为什么无效?

我需要两个可以相互访问私有成员的实例。我自然想到了伴随对象,它授予对其伴随类唯一实例的访问权限。 我将该类本身设为私有,因此用户不能使用new创建实例。 object A { def apply = dual lazy val dual = new A } private ...

18得票4回答
如何在Kotlin中从对象实例访问伴生对象?

伴生对象的简单示例类class MyClass { companion object { val test = 25 } } 值 test 可以通过 MyClass.test 访问,但如何从 MyClass 的实例访问它?如果我有 val sample = MyClass()...