scala:使用带有不需要类型的类型参数的类方法



在此类中,方法incrementX独立于类型参数A

class Item[A](var x: Int, var y: A) {
def incrementX() = {
this.x += 1
}
def changeY(func: A => A) = {
this.y = func(y)
}
}

如何在给定具有未知类型参数的实例的情况下调用它,而无需将其中一个方法提取到另一个类或特征中?

def incrementXTwice(item: --type that incrementX can be invoked on--) {
item.incrementX()
item.incrementX()
}

(示例仅供说明(

存在类型:

def incrementXTwice(item: Item[_])

或类型参数

def incrementXTwice[A](item: Item[A])

前者假定特定A的知识丢失且无法恢复,后者假定方法不需要知道它,但调用方需要知道。

最新更新