scala案例类初始化

时间:2016-03-07 08:50:13

标签: scala class case

以下是我的案例类。如何在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。怎么解决?

1 个答案:

答案 0 :(得分:2)

我认为你不应该打开Option[Child],以便null如果它是空的。在编写惯用的Scala时,你不应该使用空值。我会将其保存在Option中并使用mapflatMap方法来访问该子项(如果存在)。

但是,如果你真的想,你可以这样做:

val a: Child = x.child.getOrElse(null)