Freemarker - 查询地图<Long, ...>

Freemarker - querying a Map<Long, ...>

在Freemarker中,我有一个Map<Long, ...>(键是Long)。

Freemarker 的 map[key] 仅支持字符串键。所以我尝试了 map?api.get(0) 但它的行为就像值不存在一样。但如果我这样做

<#list statsForThisBox as projID, val>
Project #${projID?c} has value: <b>${val???c}</b>
</#list>

然后我看到条目在那里。

项目 #64256 的值:true 项目 #0 的值:true

有没有办法查询 MapLong 键?(除了在 Java 中创建一个特殊函数之外。 )

编辑:我在想

map?api.get("java.util.Long"?new(123))

因为 Map.get(Object) 签名不能帮助 FreeMarker 选择正确的数字类型(并且因为 Java equalsfalse 在不同的 Number子类,即使它们的值真的相同),你必须告诉 FreeMarker 你想要什么类型:map?api.get(123?long)