2010-04-06 22 views
8

Başlık her şeyi soruyor: Bir Groovy sınıfının tüm özellik adlarını nasıl alabilirim?Groovy sınıfının tüm özellik isimleri nasıl alınır?

Bu mümkün mü? Koleksiyon sözdizimini sınıflarla da kullanabileceğimi düşündüm de işe yaramıyor gibi görünüyor.

+0

Bu aslında http://stackoverflow.com/questions/1477706/groovy-property-iteration kopyası değildir adlar, görev amacı için isim ve değerler değil. – pczeus

+0

@pczeus İsim ve değerlerin nasıl alınacağını biliyorsanız, yalnızca isimleri nasıl alacağınızı da bilirsiniz. –

+0

@MarkRotteveel Bu yanlış. GetProperties() öğesini arayarak hem isimleri hem de değerleri alıyorsunuz. Sadece isimleri alma seçeneği sunmuyor. Evet, sonuç olarak keySet() yapabilirsiniz, ancak Groovy'un tüm alıcılarını() tüm alıcıları çağırmak ve değerleri almak için zaten ödediniz. Benim amacım Groovy'de değerlerin elde edilmesinin cezasını ödemeden sadece mülkiyet isimlerini almanın başka bir seçeneği var. Pek çok olayın önemi yoktur, ancak bu, sadece isimleri sorduğu için gerçek bir yinelenen soru değildir. – pczeus

cevap

10

Harika bir derleyiciyi kullanıyorum 2.4 Mükemmel bir nesne üzerinde getProperties() numaralı telefonu arayarak tüm özellikleri ve değerlerini içeren bir java.util.LinkedHashMap alıyorum. sonuçlanan

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

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

: Bu soru özellik için sadece istiyor çünkü

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

Küçük bir örnek kod parçası, harika bir eklenti olabilir ... –

İlgili konular