2010-04-06 9 views
8

Tytuł zadaj to wszystko: Jak uzyskać wszystkie nazwy właściwości klasy Groovy?Jak uzyskać wszystkie nazwy właściwości klasy Groovy?

Czy to możliwe? Pomyślałem, że mogę użyć składni kolekcji z klasami też, jeśli nie działa.

+0

To nie jest właściwie kopią http://stackoverflow.com/questions/1477706/groovy-property-iteration bo to pytanie jest pytaniem tylko dla nieruchomości nazwy, a nie nazwę i wartości do celów przypisania. – pczeus

+0

@pczeus Jeśli wiesz, jak uzyskać nazwy i wartości, to wiesz również, jak uzyskać tylko nazwy. –

+0

@MarkRotteveel To jest niepoprawne. Przez wywołanie getProperties() otrzymujesz zarówno nazwy, jak i wartości. Nie daje możliwości uzyskania tylko nazw. Tak, możesz kluczować() wynik, ale już zapłaciłeś cenę Groovy wywołując wszystkie gettery() i pobierając wartości. Chodzi mi o to, że w Groovy jest inna opcja, aby uzyskać tylko nazwy właściwości bez ponoszenia kary za uzyskanie wartości. W wielu przypadkach nie ma to znaczenia, ale niezależnie od tego nie jest to faktyczne zduplikowane pytanie, ponieważ wymaga tylko nazw. – pczeus

Odpowiedz

10

Używam kompilatora groovy 2.4 Dostaję java.util.LinkedHashMap zawierający wszystkie właściwości i ich wartości zwracane przez wywołanie getProperties() na groovy obiektu.

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

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

co skutkuje:

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

Mały przykładowy fragment kodu byłby wspaniałym dodatkiem ... –

Powiązane problemy