繁体   English   中英

将Integer转换为Long in Velocity

[英]convert Integer to Long in Velocity

它将相关类打印为java.lang.Longjava.lang.String ,但未进行转换。 请帮助解决此问题。

还有其他简单的方法可以做到这一点吗?

在Java文件中设置

resolver.setAttirbutes("Long",Long.class);
resolver.setAttirbutes("String",String.class);

转换为VM文件

$Long.parseLong($String.valueOf(2))

静态方法不是这样工作的。 Java中是否存在Long.class.parseLong 不。您不是对Long进行静态引用,而是将处理反射和类加载的类对象放入。 出于安全原因,Velocity甚至不允许您调用除getName之外的Class对象的任何方法。 您想传递对Long的引用,而不是Long.class ,但是不幸的是,这是不可能的。

但是由于也可以在该类的任何实例上调用静态方法,因此您所需Long.MAX_VALUE就是将Long对象放入上下文中,例如Long.MAX_VALUELong.valueOf(0)

不仅如此,由于Velocity只能存储对象,而不能存储原始值,因此any long实际上是Long ,而任何int实际上是Integer ,因此您可以执行以下操作:

#set ($two = 2)
$two.class -> java.lang.Integer

#set ($twoLong = $two.longValue())
$twoLong.class -> java.lang.Long

#set ($threeLong = $twoLong.valueOf('3'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM