在Lift Scala net.liftweb.util.Box对象中访问实体

时间:2011-07-01 20:40:06

标签: scala scala-2.8 lift

我有一个net.liftweb.util.Box对象,该对象是在搜索用户ID时返回的。 box对象返回如下内容:

net.liftweb.util.Box[MyEntity{attributes}]

如何访问Box中的实体?特别是,我想访问框内实体的属性。

2 个答案:

答案 0 :(得分:5)

请参阅http://lift.la/scala-option-lift-box-and-how-to-make-your-co

您可以在foreach / map方法调用中访问Box的内容。例如,如果您想从实体中获取名称:

myBoxedEntity.map(_.name) openOr "No Name Provided"

如果Box已满,您将获得实体名称,否则,您将收到消息。

答案 1 :(得分:1)

如果你想对框上的对象执行一些操作,dmap是有帮助的。

例如:

fooBox.dmap("Yo!")(foo => 
  // dome some staff with foo 
  result // must be string
)

您可以通过调用fooBox.open_直接获取元素!但不建议这样做。当box为空时,它经常会引发空指针异常。