【发布时间】:2021-06-22 23:43:54
【问题描述】:
我在 Scala 中有以下几行代码。
abstract class Template[A,B] {
def myMethod[A,B](): A=>B
}
val concreate = new Template[Int,Int] {
def myMethod() = (x:Int) => x*x
}
Template 类是一个类型化的,它有一个抽象方法,它返回一个 Function1 类型的函数。 在下一步中,我通过提供类型参数匿名实例化 Template 类,并实现抽象方法。
但是编译器在第二步抛出错误。错误信息是:
Object creation impossible, since method myMethod in class Template of type [A,B]() A=>B is not defined
虽然我提供了类型和实现,但我不确定为什么会发生错误。当我定义方法时,我明白我不需要提供类型,因为编译器可以从匿名类实例化中推断出它。即使我尝试显式提供方法实现的类型。我仍然收到错误消息。
有人可以帮忙吗?谢谢!
【问题讨论】: