2010-04-06 9 views
8

제목이 묻습니다 : Groovy 클래스의 모든 속성 이름을 얻는 방법?Groovy 클래스의 모든 속성 이름을 가져 오는 방법은 무엇입니까?

심지어 가능합니까? 클래스와 콜렉션 구문을 사용할 수있을 것 같아서 작동하지 않는 것 같아요.

+0

이 실제로 http://stackoverflow.com/questions/1477706/groovy-property-iteration의 중복되지 않습니다 이름, 할당 목적의 이름과 값이 아님. – pczeus

+0

@pczeus 이름과 값을 가져 오는 방법을 알고 있다면 이름 만 가져 오는 방법도 알게됩니다. –

+0

@MarkRotteveel 그건 맞지 않아. getProperties()를 호출하면 이름과 값을 모두 얻게됩니다. 이름을 얻는 옵션 만 제공하지는 않습니다. 예, 결과를 keySet() 할 수 있지만, 이미 모든 getters()를 호출하고 값을 검색하는 Groovy의 가격을 지불했습니다. 저의 요점은 Groovy에서 값을 얻는 불이익을 치르지 않고 속성 이름 만 가져 오는 또 다른 옵션이 있다는 것입니다. 많은 경우에 문제가되지 않지만 이름에 대해서만 묻기 때문에 실제로는 중복되는 질문이 아닙니다. – pczeus

답변

10

Groovy 컴파일러를 사용 중입니다. 2.4 Groovy 객체에서 getProperties()을 호출하여 반환 된 모든 속성과 값을 포함하는 java.util.LinkedHashMap을 얻었습니다. 결과

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

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

:이 질문은이 호텔 만 요구하고 있기 때문에

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

작은 예제 코드 조각이 멋진 추가 기능이 될 것입니다 ... –

관련 문제