【问题标题】:Groovy named parameter causing ClassCastExceptionGroovy 命名参数导致 ClassCastException
【发布时间】:2021-06-03 18:55:39
【问题描述】:

我有一个在 Jenkins 中运行的 Groovy 脚本。对于上下文,我使用SAML Plugin,特别是使用SamlSecurityRealm 构造函数。这很好用。

但是,为了提高可读性,我尝试使用命名参数。参数binding,属于String类型,导致如下异常:

java.lang.ClassCastException: java.lang.String cannot be cast to groovy.lang.Binding

我的用法是这样的:

binding = 'String value'

此语法适用于所有其他参数,如果我只删除这个命名参数,脚本就会运行。

我熟悉 Java 和 Scala,但不太熟悉 Groovy。 binding 似乎不是关键字,但我假设我需要以某种方式转义它?用单引号或双引号或反引号括起来也不起作用。

【问题讨论】:

  • 你能显示完整的代码吗?如何创建 SamlSecurityRealm 实例并提供参数。

标签: jenkins groovy


【解决方案1】:

如果你在 groovy 脚本中,那么 binding = XYZ 会尝试调用 Script.setBinding(XYZ)

https://docs.groovy-lang.org/latest/html/api/groovy/lang/Script.html

除非你像这样声明一个变量绑定:

def binding = XYZ

【讨论】:

  • 有没有办法将binding这个词转义,以便用于命名参数?
  • def binding 应该可以工作。或者展示你的情况
猜你喜欢
  • 2013-03-01
  • 2011-11-16
  • 2018-03-10
  • 1970-01-01
  • 1970-01-01
  • 2014-07-31
  • 1970-01-01
  • 2014-12-10
  • 1970-01-01
相关资源
最近更新 更多