问题标签 [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.
scala - 从 scala 伴随对象调用 Controller 的方法
我的项目中有一个控制器,它有一个套接字方法,我想在伴生对象中调用该方法。但不知何故,我无法做到这一点,因为我还需要将参数传递给伴生对象,而我不能。这是我的代码示例:
android - 应用程序崩溃,因为 lateinit 应用程序实例未初始化
我正在尝试保存一个 Application 实例并在 databaseHelper 的构造函数中使用,但是当我的活动尝试实例化 databaseHelper 时,出现以下异常:
导致异常的代码如下:
ForecastProvider 具有以下伴随对象:
ForecastDb的构造函数引用了ForecastDbHelper的一个实例,其构造函数引用了App.instance,声明如下:
如果我注释所有引用数据库的代码,应用程序使用 ForecastServer 作为数据源,但是当我尝试引用数据库并因此引用应用程序时,Kotlin 抛出 UninitializedPropertyAccessException。
我一直在看代码几个小时,无法弄清楚我做错了什么。任何帮助都是有福的,提前感谢大家。
scala - 在伴随对象的 apply 方法中使用 New 关键字
在 scala 中使用伴生对象我有点困惑。当您想提供多个构造函数时,通常会声明一个伴生对象并重载该apply
方法。但是这两种方式有什么区别呢?:
我见过的几乎所有示例都使用第一种形式:
- 何时使用伴随对象工厂与 new 关键字
- Scala中的“新”关键字
- http://alvinalexander.com/scala/how-to-create-scala-object-instances-without-new-apply-case-class
但我的代码似乎使用两种形式都一样。只有当我们有一个普通的类时,使用new
关键字才有意义?(不是案例类)?
oop - Kotlin - 是否可以在类中的 init 块之前初始化伴随对象?
是否可以在 Kotlin 类中companion object
的块之前初始化一个?init
如果是这样,怎么做?如果没有,有没有办法完成同样的事情。
我有以下情况,
并且调用printAllStatics
会导致空指针异常。
scala - 在 SPARK REPL 上给出错误(对 A 的引用不明确)并且在 Intellij 和 Scala REPL 中工作正常?
我有一个示例代码:
此代码在 Intellij 中运行良好。并给我输出:
但是当尝试在 REPL 上执行此操作时:
它给了我以下错误:
我在这里想念什么?如果可以,请详细解释,这将很有帮助。
scala - 如何以函数式编程方式实现计数器
在尝试理解伴随对象时,我编写了以下代码来计算类被实例化的次数。我不得不使用'var'来保持计数。是否有一种“函数式编程”方式来实现相同的任务,即使用不可变变量。
java - 如何覆盖伴随对象的隐式函数?
我是 Scala 和隐式转换的新手。
我正在使用我无法控制的现有 scala 库。让我们考虑图书馆中的 R 类。
我正在扩展 R 类以覆盖它的几乎所有行为。但是这个新类是一个Java 类。我们称它为 A。
问题是,在我的控制流中的某个时刻,控件跳转到 R 的隐式声明并最终使用 RFunctions 类来实现任何功能。
RFunctions 中存在的方法也在我的扩展类 A 中实现。我不明白如何绕过或避免隐式转换。
任何想法,将不胜感激。
scala - Scala:在伴随对象中使用隐式
我在 scala 中创建伴随对象并尝试在不导入的情况下使用object
隐含函数。class
但是,每当尝试编译代码时,我都会遇到错误:type mismatch;
似乎它无法自动导入隐含。以下是我的代码:
当我import ImplicitTest5._
在课堂上使用时,它会编译并运行良好。根据Programming in Scala, Page: 478它可以正常工作,并且不需要定义导入。
在这种情况下,转换dollarToEuro被称为与Dollar 类型相关联。每次需要从 Dollar 类型的实例进行转换时,编译器都会找到这样的关联转换。无需将转换单独导入您的程序。
我的样本出了什么问题,或者我的理解有误导性?
scala - 扩展类伴生对象的Scala隐式转换
我正在尝试用 Java 创建一个 customRDD。
RDD转换RDD[(K,V)]
为PairRDDFunctions[K,V]
使用rddToPairRDDFunctions()
.object RDD
我正在尝试对我的CustomJavaRDD
which extends CustomRDD
which extends做同样的事情RDD
。
现在它应该rddToCustomJavaRDDFunctions()
在遇到时调用隐式函数CustomJavaRDD[(K,V)]
,但由于某种原因它仍然会去rddToPairRDDFunctions()
。
我究竟做错了什么?
RDD.scala
自定义RDD.scala
PairCustomJavaRDDFunctions.scala
没有错误;程序编译成功,但假设我有data: RDD
一个CustomJavaRDD
.
在运行时它转换data
为PairRDDFunctions
; 即它对RDD.scalarddToPairRDDFunctions
中定义的隐式调用。
但它应该调用CustomRDD.scalarddToCustomJavaRDDFunctions
中定义的并将其转换为.PairCustomJavaRDDFunctions
scala - Scala - 创建一个扩展密封抽象类的案例对象列表
我正在尝试在伴随对象中创建案例对象列表。这些对象都继承自一个密封的抽象类。但是编译器对列表中的每个项目都说“未找到:值 CompositeSpectrum”等等。密封的类和案例对象都编译得很好,只是当我尝试在伴随对象中创建列表时,我得到了错误。