我想创建一个可变的协变类,所以我需要添加一个绑定到 setter 方法的较低类型。但是我也希望setter方法设置一个字段,所以我猜这个字段需要绑定相同的类型?
class Thing[+F](initialValue: F) {
private[this] var secondValue: Option[G >: F] = None
def setSecondValue[G >: F](v: G) = {
this.secondValue = Some(v)
}
}
该方法编译得很好。但是名为 secondValue 的字段根本无法编译,并显示错误消息:
Multiple markers at this line
- ']' expected but '>:' found.
- not found: type G
我需要做什么?