在此类中,方法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
的知识丢失且无法恢复,后者假定方法不需要知道它,但调用方需要知道。