Groovy3.x中类似Map对象中的访问成员通过点表示法抛出Exception



我使用的是带有Groovy 3.0.7风格的版本x 4.0.3->CCD_ 1。它有一个包含方法的扩展模块:

public static Object getAt(JsonObject json, String key) {
return json.getValue(key);
}

现在,在我的代码中,我试图获得JsonObject:的成员

json.getString( 'id' ) // works fine
json[ 'id' ] // works fine
json.id // throws NoSuchMethodException

我错过了什么?

是";点表示法";对于CCD_ 3;被否决的";在Groovy3中?

更新:

事实上,getAt()对于点表示法是不够的,而getProperty()是:

class A {
String a = 'aaaaaaaaa'

//Object getAt( String key ){ a }

def getProperty(String name) { a }
}
def a = new A()
assert 'aaaaaaaaa' == a[ 'aa' ]
assert 'aaaaaaaaa' == a.aaaa
assert 'aaaaaaaaa' == a.a

json.id仅在存在getId()方法、id字段或用于拦截对此类实例(propertyMissing(String)vertx-lang-groovy0等(的属性访问的适当位置时有效。默认情况下,getAt(JsonObject, String)方法不会参与评估json.id

相关内容

  • 没有找到相关文章

最新更新