У меня есть класс Calculator
, который расширяет функцию.Тип аргумента функции - это черта, называемая InputData
, а выходной тип функции - другая черта OutputData
.
Мне нужно переопределить метод apply
.Проблема в том, что я не могу иметь в качестве аргумента класс case, который расширяет InputData
.
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
.