[英]convert Integer to Long in Velocity
它将相关类打印为java.lang.Long
或java.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_VALUE
或Long.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.