【问题标题】:Groovy convert String to LongGroovy 将 String 转换为 Long
【发布时间】:2018-05-29 22:11:54
【问题描述】:

我正在编写一个詹金斯管道,我需要将一个字符串参数转换为一个 Long 值。

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

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

或者这个:

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

我的代码:

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

有什么想法吗? 谢谢。

【问题讨论】:

  • Long.parseLong(String ) 需要一个字符串参数。 params.begin、params.end 和 params.paymentid 的类型是什么——都是 String ??
  • 您的示例代码中有Integer 而不是Long,但在您的问题中,您指的是“Long.valueOf”和“Long.parseLong”...
  • 是的,我尝试了不同的东西并粘贴了我的一个尝试,但 Long.valuOf 告诉我:org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not allowed to use staticMethod java.lang .Long valueOf java.lang.String
  • @JasonM1 param.begin, end和paymentid都是String

标签: jenkins groovy


【解决方案1】:

你应该使用 Long 类:

def min = Long.valueOf('1')

【讨论】:

  • 对不起,我的粘贴不好,但我试过了,错误是:org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not allowed to use staticMethod java.lang.Long valueOf java.lang .String
【解决方案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 有效。

我应该禁用沙盒。

【讨论】:

    【解决方案3】:

    以下转换也将起作用。

    Long paymentId = params.paymentid as Long
    println paymentId
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-24
      • 1970-01-01
      • 2017-08-20
      • 1970-01-01
      • 2019-07-31
      • 2021-10-08
      • 2014-11-13
      • 1970-01-01
      相关资源
      最近更新 更多