2010-04-06 8 views
8

Il titolo chiede tutto: come ottenere tutti i nomi di proprietà di una classe Groovy?Come ottenere tutti i nomi di proprietà di una classe Groovy?

È possibile? Pensavo di poter utilizzare anche le sintassi di raccolta con le classi, perché non sembra funzionare.

+0

Questo non è in realtà un duplicato di http://stackoverflow.com/questions/1477706/groovy-property-iteration perché questa domanda sta chiedendo solo per la proprietà nomi, non il nome e i valori ai fini del compito. – pczeus

+0

@pczeus Se sai come ottenere nomi e valori, sai anche come ottenere solo nomi. –

+0

@MarkRotteveel Che non è corretto. Chiamando getProperties() si ottengono sia nomi che valori. Non dà la possibilità di ottenere solo nomi. Sì, puoi keySet() il risultato, ma hai già pagato il prezzo di Groovy chiamando tutti i getter() e recuperando i valori. Il mio punto è che c'è un'altra opzione in Groovy per ottenere solo i nomi delle proprietà senza pagare la penalità di ottenere i valori. Molti casi non importa, ma a prescindere da ciò non si tratta di una domanda duplicata in quanto richiede solo nomi. – pczeus

risposta

10

Sto usando il compilatore Groovy 2.4 Ricevo un java.util.LinkedHashMap contenente tutte le proprietà ei loro valori restituiti chiamando getProperties() su un oggetto groovy.

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

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

che si traduce in:

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

Un piccolo snippet di codice sarebbe un'aggiunta fantastica ... –

Problemi correlati