Java에서 임의의 개체 계층을 트래버스하는 방법을 찾고 있습니다. 분명히 리플렉션 API를 직접 사용하는 것이 하나의 옵션이지만 태스크를 더 쉽게 만들 수있는 라이브러리는 무엇입니까?개체 hirerarchy 이동
특히 주어진 인터페이스를 구현하는 기본 객체에서 직접 또는 간접적으로 참조되는 모든 객체를 잡고 싶습니다. 계층 구조는 루프를 포함 할 수 있지만, 찾고있는 객체가 DAG를 형성하므로 이상적으로는 토폴로지 순서로 반환해야합니다.
Java에서 임의의 개체 계층을 트래버스하는 방법을 찾고 있습니다. 분명히 리플렉션 API를 직접 사용하는 것이 하나의 옵션이지만 태스크를 더 쉽게 만들 수있는 라이브러리는 무엇입니까?개체 hirerarchy 이동
특히 주어진 인터페이스를 구현하는 기본 객체에서 직접 또는 간접적으로 참조되는 모든 객체를 잡고 싶습니다. 계층 구조는 루프를 포함 할 수 있지만, 찾고있는 객체가 DAG를 형성하므로 이상적으로는 토폴로지 순서로 반환해야합니다.
아직 Apache BeanUtils를 보셨습니까? ->http://commons.apache.org/beanutils/
내가 필요한 모든 것을 다루고 있는지 알 수는 없지만 사용하기 쉽습니다.
다음은 제안 사항입니다. 객체에 MyObject
인터페이스를 구현 한 경우 다음은 모든 구성 요소를 가로 질러 map
으로 추출합니다.
public interface MyObject{
String getName();
void addChild(MyObject obj);
MyObject[] getChildren();
}
// This will visit and extract all children
public void visitMyObject(MyObject cmp, Map hashMap){
// Add this component
if(cmp != null) hashMap.put(cmp.getName(), cmp);
// Go visit all children
for(MyObject subComponent : cmp.getChildren()){
visitMyObject(subComponent, hashMap);
}
}
불행히도 개체 계층 구조는 훨씬 더 복잡하며 많은 (아직 컴파일 타임에있는) 개체가있을 수 있습니다.이 개체는 여전히 내가 관심있는 내용을 참조 할 수 있습니다. – biziclop