问题标签 [companion-object]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
402 浏览

kotlin - 为什么我看不到扩展类的伴随对象组件?

我有一个抽象类:

abstract class Vec2t

和一个扩展类:

class Vec2 : Vec2t

Vec2t具有以下伴随对象

但是当我输入时Vec2.length,它被标记为未解决的参考......

为什么?我错过了什么?

0 投票
1 回答
227 浏览

types - 伴随对象隐藏类——错误或功能?

在 Kotlin 中,以下似乎是合理的代码:

但是,它不会编译:类型Foo绑定到Foo.Foo而不是Foo

这是一个(语言设计或编译器)错误,还是一个特性?combine如果是后者,在存在伴随对象的情况下实现的惯用方式是什么?

当然,我会考虑一种解决方法:

但这不太好,现在是吗?

0 投票
1 回答
4369 浏览

android - 伴随对象 - Android 是否希望将它们注册为活动 (?)

我有一个活动

它在 Manifest 中声明如下:

当我尝试启动它时,我得到:

引起:android.content.ActivityNotFoundException:无法找到显式活动类> {com.example.andrzejzuzak.visiondummyapp/com.example.andrzejzuzak.visiondummyapp.DummyActivity$Companion};您是否在 AndroidManifest.xml 中声明了此活动?在 android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1794) 在 android.app.Instrumentation.execStartActivity(Instrumentation.java:1512) 在 android.app.Activity.startActivityForResult(Activity.java:

令我困扰的是这一行:

找不到显式活动类 {com.example.andrzejzuzak.visiondummyapp/com.example.andrzejzuzak.visiondummyapp.DummyActivity$Companion

这实际上是否意味着我必须在某处注册 Companion 对象?

0 投票
2 回答
17644 浏览

kotlin - 伴随对象之外的访问方法 - Kotlin

我对 kotlin 很陌生,我想知道这是否可能,以及从伴随对象内部访问伴随对象外部的方法和变量是否违反最佳实践。

例如

或类似的东西

谢谢

0 投票
1 回答
127 浏览

scala - 从同伴导入的类不能用作构造函数参数默认值

考虑以下代码:

为什么最后一个版本无法编译(与 相同Config = Config.apply())?

0 投票
6 回答
30484 浏览

object - Kotlin:类中对象和伴随对象之间的区别

kotlin 类中的对象和伴生对象有什么区别?

例子:

如果包含的参数/方法与其类密切相关,我已经读过应该使用伴随对象。

但是为什么还有可能在类中声明一个普通对象呢?因为它的行为与同伴完全一样,但它必须有一个名字。

它的“静态”(我来自java端)生命周期是否可能存在差异?

0 投票
3 回答
2280 浏览

java - 如何从 Java 中引用伴随对象?

我有一个混合项目JavaKotlin课程,我想知道如何companion objects从我的Java课程中引用。

0 投票
2 回答
272 浏览

scala - Scala:哪些类不应该有伴生对象?

以下模式似乎是惯用的scala:

惯用方法的动机是什么?在哪些情况下我应该提供工厂方法,强制客户使用val y = new Foo()?所有带有伴生对象的案例都应该提供工厂方法吗?

0 投票
1 回答
239 浏览

scala - Scala 一个伴随对象 Vs。Scala 类新对象

这是代码和输出:

现在我的疑问是,如果我不想使用 new 运算符来创建 A 类的对象,那么伴随对象如何打印a1(私有变量)值并访问 A 类的 A1 方法。我的意思是说我想通过伴随对象 A 访问 Companion Class A 的两个成员。

上面的代码片段也应该可以正常工作,因为在 Mardin Odersky 的书中已经写到A 类及其伴随对象可以访问彼此的私有成员。

0 投票
2 回答
978 浏览

generics - 如何在通用枚举同伴上声明扩展参数

我想用.MAX通用枚举来表示值计数。

我试着玩了一下,但我想不通。

例如,当我写这个时:

val Enum.Companion.MAX get() = enumValues().size

它抱怨enumValues()

类型推断失败:没有足够的信息来推断参数 T

inline fun > enumValues ( ) : Array 请明确指定。

这是有道理的,然后我也尝试了:

val <E> Enum<E>.Companion.MAX get() = enumValues().size

它在第二个抱怨E

引用嵌套类时,外部类的类型参数是多余的

有办法吗?