我正在编写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)
任何的想法 ?谢谢。
你应该使用Long类:
def min = Long.valueOf('1')
我在管理控制台中试过这个解决方案
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的作品。
我应该禁用沙箱。
以下转换也适用。
Long paymentId = params.paymentid as Long
println paymentId
如果字符串无效,您可以将此块放在try..catch块中以处理任何类型的转换异常。