特征中的基类构造函数参数

时间:2011-02-09 13:09:18

标签: scala traits

我有一个带有一些构造函数参数的基类:

abstract class HugeClass(implicit context: ContextClass) {
   ...
}

因为类越来越大,只有一些子类需要一些特殊的行为,我想把它重构成一个特征。但是,我仍然需要访问特征中的context。我试过这个:

trait SomeTrait extends HugeClass {
    def myMethod = {
        context.method
    } 
}

但scala编译器说: not found:value context 。我该如何解决?

1 个答案:

答案 0 :(得分:5)

参数context变为私有字段。参数或成员是隐式的这一事实并不意味着它是公共的 - 它只隐含在(HugeClass)中可见的类中。 将context变为val

abstract class HugeClass(implicit val context: ContextClass) {
   ...
}

它会起作用。