제목이 묻습니다 : Groovy 클래스의 모든 속성 이름을 얻는 방법?Groovy 클래스의 모든 속성 이름을 가져 오는 방법은 무엇입니까?
심지어 가능합니까? 클래스와 콜렉션 구문을 사용할 수있을 것 같아서 작동하지 않는 것 같아요.
제목이 묻습니다 : Groovy 클래스의 모든 속성 이름을 얻는 방법?Groovy 클래스의 모든 속성 이름을 가져 오는 방법은 무엇입니까?
심지어 가능합니까? 클래스와 콜렉션 구문을 사용할 수있을 것 같아서 작동하지 않는 것 같아요.
Java Reflection API를 사용할 수 있습니까?
getDeclaredFields of java.lang.Class을 살펴보십시오.
MetaClass API을 살펴보십시오.
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]
작은 예제 코드 조각이 멋진 추가 기능이 될 것입니다 ... –
이 실제로 http://stackoverflow.com/questions/1477706/groovy-property-iteration의 중복되지 않습니다 이름, 할당 목적의 이름과 값이 아님. – pczeus
@pczeus 이름과 값을 가져 오는 방법을 알고 있다면 이름 만 가져 오는 방법도 알게됩니다. –
@MarkRotteveel 그건 맞지 않아. getProperties()를 호출하면 이름과 값을 모두 얻게됩니다. 이름을 얻는 옵션 만 제공하지는 않습니다. 예, 결과를 keySet() 할 수 있지만, 이미 모든 getters()를 호출하고 값을 검색하는 Groovy의 가격을 지불했습니다. 저의 요점은 Groovy에서 값을 얻는 불이익을 치르지 않고 속성 이름 만 가져 오는 또 다른 옵션이 있다는 것입니다. 많은 경우에 문제가되지 않지만 이름에 대해서만 묻기 때문에 실제로는 중복되는 질문이 아닙니다. – pczeus