由于 Scala 2.13 早期的初始化程序已被弃用。
如何创建一个值以传递给应该计算(基于其他构造函数参数)并且完全私有的超类,所以在类初始化时它不能被传递?
直到今天我所做的一个例子是:
abstract class JmsServiceInitialiser(val qConfig: Config)
class ActiveMQService(
val configA: ConfigElement,
val configB: ConfigElement
) extends {
val config: Config = {
println(configA)
println(configB)
...
configA + configB
}
} with JmsServiceInitialiser(config)
(这只是一个带有假类名的示例,因为我不能分享我的源代码)
如果我定义了一个特征,我不知道如何将值传递给超类而不暴露它并在类构造函数中覆盖它。
我看到 Dotty (Scala 3) 允许特征参数,但 Scala 2.13 不允许。
如果您知道解决方案,请提供一个带有解释的片段!谢谢!