我有以下案例类:
case class Network(val name : String, val mac : String)
case class Field[T](var value : T, var source : String = "")
case class Device(var _id : ObjectId = new ObjectId,
var device_type : Field[String] = Field[String](""),
var networks : Field[List[Network]] = new Field[List[Network]](List[Network]())) {
def hasMac(mac : String) : Boolean = {
networks.value.foreach { n => if(n.mac == mac) return true }
return false
}
}
我能够序列化/反序列化 Device 的实例。但是,反序列化后,hasMac 方法崩溃并出现异常:“ClassCastException: com.mongodb.BasicDBList cannot be cast to scala.collection.immutable.List”
当 Device 类是这样定义的
case class Device(var _id : ObjectId = new ObjectId,
var device_type : Field[String] = Field[String](""),
var networks : List[Network] = List[Network]()) {
def hasMac(mac : String) : Boolean = {
networks.foreach { n => if(n.mac == mac) return true }
return false
}
}
我没有收到错误,一切都按预期工作。
我看到 salat 不支持 Option[List],但这里我有 Field[List]。如果 salat 支持这种类型,我无法从这个页面理解: https ://github.com/novus/salat/wiki/SupportedTypes
艾丽莎