让我们从班级结构开始
班级结构
基础抽象类
abstract class BaseCass {
def someFunction() : Any
//Here is the place where someFunction is called
startUpMethod = {
someFunction()
}
}
基础实施
import Utility._
class BaseImpelmentation {
//These parameters are not passed into method calls
implicit object ParameterOne = ParameterOne
implicit object ParameterSecond = ParameterSecond
implicit object ParameterThird = ParameterThird
def someFunction() : Any = {
functionWithImplicitOne();
functionWithImplicitSecond();
functionWithImplicitThird();
}
}
具有隐式函数的类
class Utility {
//here all function with implicit are defined.
}
算法
someFunction
,例如它在构造函数之后调用,但在类someFunction
覆盖了BaseImpelmentation 问题
在BaseClass中调用someFunction
时,不使用来自BaseImpelmentation的隐式参数。所以我必须把它们放在BaseCass中。但是在那种情况下,我将一个实现放在抽象类中,这不是很好。
是否可以将隐式参数放入BaseImpelmentation,但不要将它们作为常规参数传递?
答案 0 :(得分:0)
如果仅在类完全构造时调用someFunction
,那么这应该有效; functionWithImplicitOne()
[原文如此]中对BaseImpelmentation
的调用将使用ParameterOne
,因为它位于调用该方法的范围内。你的问题是别的。什么是实际的错误消息?