我通过本机SQL查询从光滑中获取此列表;此查询使用String或“null”(空对象,而不是“null”字符串)填充3个电话号码字段。 我想删除这些空字段,所以我写了这个:
var l2:List[Rdv] = liste.list()
l2=l2.map( (w:Rdv) =>{
if ( w.telPrivé==null ) w.copy( telPrivé = "" )
})
但是我收到了这个错误:
found:List[Any], required:List[Rdv]
所以在地图之后我添加了“.asInstanceOf [List [Rdv]]”,但后来我收到了这个错误:
java.lang.ClassCastException: scala.runtime.BoxedUnit cannot be cast to metier.Objets$Rdv
这似乎是一个基本问题,但我做不到。
奥利弗。
答案 0 :(得分:5)
试试这个:
var l2: List[Rdv] = liste.list()
l2 = l2 map ((w: Rdv => if (w.telPrivé == null) w.copy( telPrivé = "" ) else w)
答案 1 :(得分:0)
你能尝试这样做吗?
val l2: List[Rdv] = liste list ()
val l3 = ls map{
case x @ Rdv(_, null, _) => x.copy(telPrive = "")
case x => x
}
老实说,应该创建该字段,如果它可以为Option
,那么你可以调用已定义的成员函数:
case class Rdv(a: String, b: Option[String], c: String){
def realC = b getOrElse ""
}