Groovy将String转换为Long

时间:2017-12-15 16:59:13

标签: jenkins groovy

我正在编写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)

有什么想法吗? 感谢。

3 个答案:

答案 0 :(得分:5)

你应该使用Long类:

def min = Long.valueOf('1')

答案 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 :(得分:2)

以下转换也可以。

Long paymentId = params.paymentid as Long
println paymentId

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