Java 8 FreeMarker Java 8可选值支持
FreeMarker是否支持Java8中的可选值 e、 g.我有字符串id,它的getter方法如下:Java 8 FreeMarker Java 8可选值支持,java-8,freemarker,optional,Java 8,Freemarker,Optional,FreeMarker是否支持Java8中的可选值 e、 g.我有字符串id,它的getter方法如下: public Optional<String> getId() { return Optional.ofNullable(Id); } public可选getId(){ 返回可选的可空值(Id); } 我将如何在.ftl文件中引用它。{data.id}似乎找不到正确的可选值。但是给了我可选的[1334586]好吧,Freemarker不应该知道可选的,或者最好说它是动态类型
public Optional<String> getId() {
return Optional.ofNullable(Id);
}
public可选getId(){
返回可选的可空值(Id);
}
我将如何在.ftl文件中引用它。{data.id}似乎找不到正确的可选值。但是给了我可选的[1334586]好吧,Freemarker不应该知道可选的,或者最好说它是动态类型的,所以它适用于任何对象 由于您调用了${data.id},所以只需调用
toString
onOptional
,这完全是预期的行为
如果要在模板中处理空值,并且要使用可选
,则可以选择将默认值设置为空,这样就不需要使用可选
:
Synopsis: unsafe_expr!default_expr or unsafe_expr! or (unsafe_expr)!default_expr or (unsafe_expr)!
Example: ${data.id!"No id."}
或者检查它是否存在:
<#if data?? && data.id??>
Id found
<#else>
Id not found
</#if>
或
${data.id.orElse('')}
${data.id.get()!''}