如何定义一个具有抽象方法的特质,即使它可以具有不同的参数也需要存在。我只想确保扩展该特质的类具有相同返回类型的方法。下面的示例(主要用于说明)重载了“add”,并显示“add”需要被定义的错误。我应该如何更改特质中的方法声明?
不幸的是,所有答案都无法解决问题。我不确定自己是否清楚,但我不希望在要定义/检查的参数中有任何定义的类型(Any、泛型、类型定义),因为它的类型和参数数量可能会发生变化,在我的情况下返回值可能相同。我只想检查是否存在相同名称和返回值的方法,而忽略参数。使用“Any”不是一种选择,因为它不是类型安全的,我想明确定义函数所期望的参数。
示例:
不幸的是,所有答案都无法解决问题。我不确定自己是否清楚,但我不希望在要定义/检查的参数中有任何定义的类型(Any、泛型、类型定义),因为它的类型和参数数量可能会发生变化,在我的情况下返回值可能相同。我只想检查是否存在相同名称和返回值的方法,而忽略参数。使用“Any”不是一种选择,因为它不是类型安全的,我想明确定义函数所期望的参数。
示例:
trait X{
def add: Boolean
}
class Y extends X {
def add(i: Int, s: String) : Boolean = {...}
}
class W extends X {
def add(i: Int, y: Int, w: Set[String]) : Boolean = {...}
}
X
的用户如何调用这些方法? - Lee