我有两个班级,Holders(因为目前没有更好的名字)和 Holder。Holder 必须通过 Holders 接口,它有一个任意类型的 Holder 数组。因此,它必须采用 Any 类型。我想让 setValue 做类型检查 Any 输入确实是 T 类型。我读过一些关于使用清单的内容,但我有点迷失了。有什么办法可以做我想做的事吗?
class Holders {
var values = Array[Any]()
var _holders = Array[Holder[_]]()
def setData(index: Int, newValue: Any) {
values(index) = newValue
_holders(index).setValue(newValue)
}
}
class Holder[T](someData: String, initValue: T) {
private var value : T = initValue
def getValue : T = value
def setValue(newValue: Any)(implicit m: Manifest[T]) = {
if (newValue.isInstanceOf[T])
value = newValue.asInstanceOf[T]
}
}