1

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

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

因为类变得越来越大,只有一些子类需要一些特殊的行为,所以我想将它重构为一个 trait。但是,我仍然需要访问contexttrait。我试过这个:

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

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

4

1 回答 1

5

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

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

它会起作用。

于 2011-02-09T13:14:43.057 回答