我有一个带有一些构造函数参数的基类:
abstract class HugeClass(implicit context: ContextClass) {
...
}
因为类越来越大,只有一些子类需要一些特殊的行为,我想把它重构成一个特征。但是,我仍然需要访问特征中的context
。我试过这个:
trait SomeTrait extends HugeClass {
def myMethod = {
context.method
}
}
但scala编译器说: not found:value context 。我该如何解决?
答案 0 :(得分:5)
参数context
变为私有字段。参数或成员是隐式的这一事实并不意味着它是公共的 - 它只隐含在(HugeClass
)中可见的类中。
将context
变为val
:
abstract class HugeClass(implicit val context: ContextClass) {
...
}
它会起作用。