playframework中条件get like${client?.name}的代码在哪里?
使用JsonElement时,如果不为null,则需要获取元素 这在使用JsonElement时不起作用 ${client?.name}playframework中条件get like${client?.name}的代码在哪里?,playframework,Playframework,使用JsonElement时,如果不为null,则需要获取元素 这在使用JsonElement时不起作用 ${client?.name} 有人知道怎么玩吗!是否执行此计算?条件?。表示法是Groovy的一部分,而不是Java。因此,此符号仅在Groovy模板引擎中可用。听起来您试图在Java类中使用相同的符号,但这是无法做到的 您可以在Groovy站点上阅读有关Groovy“安全导航操作符”的更多信息-使用Groovy评估Groovy模板中的java表达式。它基于JavaBean规范。假设您有一
有人知道怎么玩吗!是否执行此计算?条件
?。
表示法是Groovy的一部分,而不是Java。因此,此符号仅在Groovy模板引擎中可用。听起来您试图在Java类中使用相同的符号,但这是无法做到的
您可以在Groovy站点上阅读有关Groovy“安全导航操作符”的更多信息-使用Groovy评估Groovy模板中的java表达式。它基于JavaBean规范。假设您有一个对象
客户机
,使用一个公共方法getName()
,那么您可以执行${client.name}
或${client.getName()}
,此外,play groovy模板引擎可以通过允许您使用${client?.name}
来保护您的键入。回到您的案例,如果客户机是一个JsonElement,那么您可能可以通过${client?.getAsJsonObject()?.get(“name”)}
来获取name属性,因此,不可能添加JavaExtension或类似的内容来避免NullPointerException?我希望有一个更干净的代码它不是关于NPE的,表达式${client?.getAsJsonObject()?.get(“name”)}
已经对NPE安全了。问题是您不能使用${client.name}
并期望它自动成为${client.getAsJsonObject().get('name')}`