Groovy强制映射到GroovyRowResult

时间:2018-06-07 08:08:43

标签: groovy

我正在尝试使用以下代码创建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是否正常工作。我需要这样做,因为我想在网上游乐场验证。

1 个答案:

答案 0 :(得分:1)

访问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表现得像地图(反之亦然)。

您必须指定以后使用的所有内容。 E.g。

def a = [
    opportunity_id: 666, // XXX
    my_column: "somevalue"
] as groovy.sql.GroovyRowResult

if (a.opportunity_id) {
    println("VALUE " + a.my_column)
}