Как отключить генерацию Groovy-аксессоров?

Groovy Beans велики, но мне просто любопытно, можно ли объявить члена класса закрытым и не создавать для него аксессоры легко? В http://groovy.codehaus.org/Groovy + Beans>страница Groovy Beans не охватывает эту тему. Единственное, что я могу придумать, это определить аксессоры и сделать их частными.

1 ответов


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]