代码:
package jerry; class SomeGroovyClass { def field1 = 'ha' def field2 = 'ho' def getField1() { return 'getHa' } } def a = new SomeGroovyClass() println a.field1 println a.field2 println '------------------------------' println a.metaClass.getAttribute(a, 'field1') println a.metaClass.getAttribute(a, 'field2')
如果直接用实例.属性名的语法访问属性,如果针对某属性定义了getter方法,则访问该属性时,getter方法会自动被触发。
参见上面代码横线之前的打印内容。
如果想绕过getter方法,使用实例的metaClass.