Groovy将String转换为Long

问题描述 投票:0回答:3

我正在编写jenkins管道,我需要在Long值中转换String参数。

我使用过Long.valueOf,Long.parseLong。我收到此错误消息:

hudson.remoting.ProxyException:groovy.lang.MissingMethodException:没有方法签名:java.lang.Class.parseLong()适用于参数类型:(java.lang.String)values:[8899986991733205013]

或这个 :

hudson.remoting.ProxyException:groovy.lang.MissingMethodException:没有方法签名:java.lang.Class.valueOf()适用于参数类型:(java.lang.String)values:[8899986991733205013]

我的代码:

    def min = Long.valueOf(params.paymentid) + Integer.valueOf(params.begin)
    def max = Long.valueOf(params.paymentid) + Integer.valueOf(params.end)

任何的想法 ?谢谢。

jenkins groovy
3个回答
5
投票

你应该使用Long类:

def min = Long.valueOf('1')

2
投票

我在管理控制台中试过这个解决方案

print(params.paymendid.toLong())

有效。在我的管道上它没有用,我收到了这个错误:

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:脚本不允许使用staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods toLong java.lang.String

但这个解决方案:https://stackoverflow.com/a/39412951/8357778的作品。

我应该禁用沙箱。


2
投票

以下转换也适用。

Long paymentId = params.paymentid as Long
println paymentId

如果字符串无效,您可以将此块放在try..catch块中以处理任何类型的转换异常。

© www.soinside.com 2019 - 2024. All rights reserved.