Groovy coerce map to GroovyRowResult



我正在尝试使用以下代码创建一个Map并强制其GroovyRowResult

def a = [
x: 1,
y: 2,
my_column: "somevalue"
] as groovy.sql.GroovyRowResult
if(a.opportunity_id) {
println("VALUE " + a.my_column)
}
println("GOOD")

并查看if condition是否正常工作。我需要这样做,因为我想在网上游乐场进行验证。

访问GroovyRowResult上缺少的属性时,会出现如下错误:

Caught: groovy.lang.MissingPropertyException: No such property: opportunity_id for class: groovy.sql.GroovyRowResult
groovy.lang.MissingPropertyException: No such property: opportunity_id for class: groovy.sql.GroovyRowResult

因此,仅从映射中实例化新的 GRR 并不能使 GRR 表现得像地图(反之亦然(。

您必须指定稍后使用的所有内容。 例如

def a = [
opportunity_id: 666, // XXX
my_column: "somevalue"
] as groovy.sql.GroovyRowResult
if (a.opportunity_id) {
println("VALUE " + a.my_column)
}

最新更新