2010-07-22 4 views
6

Los frijoles Groovy son geniales, pero tengo curiosidad si es posible declarar a un miembro de la clase como privado y no generar accesos para él fácilmente. La página http://groovy.codehaus.org/Groovy+Beans>Groovy Beans no cubre este tema. Lo único que puedo pensar sería definir los accesadores y hacerlos privados.¿Cómo desactivo la generación de los accesos Groovy?

Respuesta

10

Groovy no agregará accesos si el miembro es declarado con un modificador de acceso: privado, protegido o público. Si no quieres accesadores, solo agrega el modificador que sea apropiado. Aquí hay un ejemplo que ilustra esto:

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") } 

Prints:

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

eso es muy bueno. Acabo de dar por supuesto que los usuarios públicos tenían sus accesorios generados automáticamente, pero no privados o protegidos. – Blacktiger

+0

Sí, de hecho parece que "público" DEBERÍA hacer accesos pero tendré que investigar más. – Vinny

Cuestiones relacionadas