2010-04-06 13 views
8

El título lo pregunta todo: ¿Cómo obtener todos los nombres de propiedad de una clase de Groovy?¿Cómo obtener todos los nombres de propiedad de una clase Groovy?

¿Es posible? Pensé que podría usar sintaxis de colección también con clases, ya que parece que no funcionan.

+0

Esto no es en realidad un duplicado de http://stackoverflow.com/questions/1477706/groovy-property-iteration debido a esta pregunta está pidiendo solamente para la propiedad nombres, no el nombre y los valores para el propósito de la asignación. – pczeus

+0

@pczeus Si sabe cómo obtener nombres y valores, entonces también sabrá cómo obtener nombres solamente. –

+0

@MarkRotteveel Eso es incorrecto. Al llamar a getProperties() obtiene nombres y valores. No da la opción de obtener solo nombres. Sí, puede keySet() el resultado, pero ya ha pagado el precio de Groovy llamando a todos los getters() y recuperando los valores. Mi punto es que hay otra opción en Groovy para obtener solo los nombres de las propiedades sin pagar la penalidad de obtener los valores. En muchos casos no importa, pero independientemente de esto, no es una pregunta duplicada ya que solo solicita nombres. – pczeus

Respuesta

10

Estoy usando el compilador groovy 2.4 Obtengo un java.util.LinkedHashMap que contiene todas las propiedades y sus valores devueltos llamando al getProperties() en un objeto maravilloso.

class PropertyDemoClass { 
    int firstProperty = 1; 
    String secondProperty = "rhubarb" 
    String thirdProperty = "custard" 
} 

PropertyDemoClass demoClass = new PropertyDemoClass() 
println demoClass.getProperties().toString() 

que se traduce en:

[firstProperty:1, secondProperty:rhubarb, class:class PropertyDemoClass, thirdProperty:custard] 
+0

Un pequeño fragmento de código de ejemplo sería una adición increíble ... –

Cuestiones relacionadas