我的用例是为用户提供在模板引擎的帮助下创建报告的可能性。因此,我提取了数据模型的相关部分并将 Freemarker 作为模板引擎集成。 到目前为止效果很好,但现在我的数据模型包含某些位置的继承 - 但 Freemarker 似乎不支持 instanceof 操作?如何处理这个问题?模型中是否还有其他支持继承的模板引擎?
虚构的例子:
我有 2 个类“Car”和“Bike”,它们扩展了“Vehicle”。该模型包含一个包含车辆列表的“车队”类。用户希望(在模板的帮助下)遍历列表并在汽车的情况下写入属性“countSeats”,在自行车的情况下写入属性“frame size”。如何使用 Freemarker 实现这一点?可以在任何模板引擎中完成吗?
非常感谢!
//编辑:不幸的是,由于列表中车辆的顺序(在上面的示例中)是必不可少的,因此无法将列表与父类(super class)拆分为多个具有“具体”对象的列表。
最佳答案
丑陋的解决方案
<#if yourObject.class.simpleName == "Simple class name like String">
something
</#if>
<#if yourObject.class.simpleName == "other simple class name">
do something else
</#if> `
关于java - Freemarker 中的继承/实例检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30416693/