templates - 在模板中使用空对象,如何避免 NullPointerException?

标签 templates scala playframework-2.0

在 Play 1.2 中,我通常会做类似 ${myobj?.item?.subitem} 的事情。

我在 Play 2.0 中试过这个,但没有任何运气。有没有可能的替代方案?

最佳答案

编辑:对不起,我认为我没有忠实地翻译这个,而且它更难看。 myobj.item 也可以为 null,因此您必须将其包装在 Option(_) 中:

@Option(myobj).flatMap(i => Option(i.item)).flatMap(s => Option(s.subitem)).getOrElse("empty")

@((for {o <- Option(myobj)
        item <- Option(o.item)
        subitem <- Option(item.subitem)
   }).getOrElse("empty"))

请注意确定 playframework 是否对这种常见情况有一些额外的好处。

关于templates - 在模板中使用空对象,如何避免 NullPointerException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10298069/

相关文章:

playframework - 使用 Ebean 和 Play 框架将条件放在列表字段上

c++ - 使用 g++ 的 decltype 模板声明

c++ - 模板特化和别名模板推导区别

c++ - 获取地址时模板类型(类/函数)实例化的规则是什么?

c++ - 具有嵌套类的模板 LinkedList 类

scala - 用值覆盖抽象方法,一个好的做法?

scala - 决定是否使用 Apache Spark 时应考虑哪些因素?

scala - 如何编辑akka application.conf

playframework - EBean 没有进行更新!它正在尝试插入并失败

java - 当 Play Framework 中的 MultipartFormData 实际完成文件上传时