Groovy强制映射到GroovyRowResult

Groovy强制映射到GroovyRowResult,groovy,Groovy,我试图创建一个映射,并使用以下代码将其强制为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条件是否正常工作。我需要这样做,因为我想在在

我试图创建一个
映射
,并使用以下代码将其强制为
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条件
是否正常工作。我需要这样做,因为我想在在线游乐场中进行验证。

当访问
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)
}

你还没问问题,我不知道问题出在哪里。FWIW,您尚未设置
a.opportunity\u id