2009년 12월 7일 월요일

ValueObject 프로퍼티 찾기 for in|작성자 서기



Flex에서 dynamic Object의 property를 찾기는 샘플도 많고 많이 나왔다..

for in 을 쓰라고...

무엇인가 하니

var obj:Object = {name="장윤석", age="19"};

for (var name:String in obj){
     trace(obj[name]);
}

이라고 하면
콘솔창엔 차례로

name
age
가 나올것이다


for..in Iterates over the dynamic properties of an object or elements in an array and executes statement for each property or element.

설명서에도 dynamic properties 를 찾는다고 했으니까

하지만 Flex에서는 java 와 같이 ValueObject를 쓸때가 많다

Class TestVO{
public var name:String;
public var age:String;
}

이런 클래스..(보통 RemoteObject에서 나온 VO 값을 Flex에서 사용하기 위해 많이 쓴다)

저 property를 모를때...

어떻게 찾아야 할까? 이런것들은 많이 나와있지 않다..

똑같이

var vo:TestVO = new TestVO();
vo.name = "장윤석";
vo.age  = 19"

for (var name:String in vo){
   trace(name);
}
을 하면 될까?

안된다
for 문 안에도 안들어 갈것이다..(심심하신 분들은 Test 해보세요~)

그럼 저 properties을 어떻게 찾아야 하나....

방법은 있다..


var vo:TestVO = new TestVO();
vo.name = "장윤석";
vo.age  = 19";
var obj = ObjectUtil.getClassInfo(vo);
for each(var name:String in obj.properties){
  trace(name);
}
이러면 끝
getClassInfo()라는 것이 해당 클래스의 정보를 넘겨준다
name,alias,properties 등등

이것때메 어제 야근 ㅠㅠ

이제 VO도 동적으로 가져올때 저런방식으로 찾자~!


댓글 없음:

댓글 쓰기