有没有办法在速度上施放物体?

时间:2016-09-12 17:54:26

标签: java velocity

我正在使用velocity模板生成一些字符串并将对象类型传递给上下文。

我想将该对象强制转换为特定的类是否有任何方法可以实现此目的?

2 个答案:

答案 0 :(得分:3)

通常,您将在Java端处理此类任务,而不是在模板端处理。

尽管如此,如果你不使用SecureUberspector,它是可行的(但真的是hackish ......):

#set($casted = $someObject.class.forName('target.class.name').cast($sourceObject))

答案 1 :(得分:1)

Claude Brisson的回答是有效的,但是从Velocity 1.6及更高版本开始,它可以做得更简单一些,而不使用Class.forName(),它可以在编译时创建不可见的类的依赖。

假设我想将某些内容投射到String。在Java中:

context.put("String", String.class);

然后在Velocity中我可以使用:

#set($casted = $String.cast($sourceObject))

Source