2010-07-22 13 views
6

Groovy Bean很棒,但我只是很好奇,如果可以聲明一個類成員是私有的,並且不容易爲它生成訪問器? http://groovy.codehaus.org/Groovy+Beans>Groovy Beans頁面不包含此主題。我能想到的唯一的事情就是定義訪問器並使其成爲私有的。如何禁用Groovy訪問器的生成?

回答

10

如果使用訪問修飾符聲明成員,則Groovy不會添加訪問者:private,protected或public。如果您不需要訪問器,只需添加適合的修改器即可。下面是說明了這一個例子:

class Test1 { private int blat } 
println Test1.metaClass.getMethods()*.name.findAll { it.endsWith("Blat") } 
class Test2 { protected int blat } 
println Test2.metaClass.getMethods()*.name.findAll { it.endsWith("Blat") } 
class Test3 { public int blat } 
println Test3.metaClass.getMethods()*.name.findAll { it.endsWith("Blat") } 
class Test4 { int blat } 
println Test4.metaClass.getMethods()*.name.findAll { it.endsWith("Blat") } 

打印:

[] 
[] 
[] 
[getBlat, setBlat] 
+0

這很酷。我剛纔假設公共成員自動生成訪問者,但不是私有的或受保護的。 – Blacktiger 2010-07-23 14:01:08

+0

是的,其實它看起來像「公共」應該使訪問者,但我將不得不進行更多的研究。 – Vinny 2010-08-02 16:29:54