以下是我的案例类。如何在scala中初始化case class child?
// case class
case class parent(id: String, name: String, rNo: Int,
child: Option[Child])
case class Child(cid: String, Ctype: String,
group_category_id: String,
unlock_at: String, due_at: String)
val a: Child = if (x.child != None) { x.child.get } else { null }
如果我声明为null,则会在其他情况下抛出NullPointerException
。怎么解决?
答案 0 :(得分:2)
我认为你不应该打开Option[Child]
,以便null
如果它是空的。在编写惯用的Scala时,你不应该使用空值。我会将其保存在Option
中并使用map
和flatMap
方法来访问该子项(如果存在)。
但是,如果你真的想,你可以这样做:
val a: Child = x.child.getOrElse(null)