我有一个扩展功能的类Calculator
。函数自变量类型是称为InputData
的特征,函数输出类型是另一个特征OutputData
。
我需要重写apply
方法。问题是,我没有扩展InputData
的case类作为参数。
class Calculator extends (InputData => OutputData) {
override def apply(data: Numbers): MathResult = { ... }
}
case class Numbers(x1: Int, x2: Int) extends InputData
case class MathResult(y: Int) extends OutputData
当我尝试这样做时,我得到Method 'apply' overrides nothing
。
答案 0 :(得分:0)
这无法完成。
方法参数说它可以接收每个InputData
子类型,如果为参数指定具体类型,则实际上是在限制输入类型,破坏了方法的声明,因此错误{{1 }}。 (感谢@Luis)
实际上,此抽象对于用例不是必需的。您可以声明一个名为Method 'apply' overrides nothing
的方法,并且仍然可以使用打开和关闭括号进行调用。 (感谢@natan)