2012-06-17 5 views
1

저는 AnyLogic이라는 시뮬레이션 환경에서 작업 중이며 Java를 기본 코드로 사용합니다.자바에서 동적으로 객체를 참조 할 수 있습니까?

예제에서 사용자는 순서도를 그리고 런타임에 흐름도의 각 요소가 인스턴스화됩니다. 나는 사용자가 코드에 의해 그리는 것을 확인할 수 있습니다 플로우 차트에있는 모든 오브젝트의 이름을 나타내는 문자열의 목록을 반환

  LinkedList eo = (LinkedList) this.getEmbeddedObjects(); 
  • 합니다.

동적으로 이러한 개체의 메서드에 액세스하고 싶습니다. 그러나 저는 Java에 익숙하지 않고이 작업을 수행하는 방법을 모릅니다. 리플렉션에 대해 이해하는 것으로부터 classForName을 인스턴스화 할 수 있지만이 경우 이미 인스턴스화 된 객체가 있고 그 객체에 액세스하기 위해 String을 사용하려고합니다.

나는 어떻게 진행하고 어떤 제안을 주셔서 감사합니다. 당신은, 메소드 이름의 목록을 얻을 당신이 원하는 일을 찾아서 호출 할 수 있습니다

답변

1

작업에 Java reflection API을 사용할 수 있습니다.

이 API는 다소 장황합니다. 문제가있는 경우 이용 가능한 번호 중 하나 인 fluentreflectionAPIs으로 이동해야합니다.

+0

대단히 고마워요. - 저에게 큰 도움이되었습니다! MIRROR를 선택했습니다. 구현하기가 훨씬 쉽습니다. 나는 API 레퍼런스와 내 일을 훨씬 쉽게 해주는 제안 된 API를 정말 고맙게 생각한다. – user1461521

2
+0

매우 도움이되는 링크 및 빠른 답변을 보내 주셔서 감사합니다. 나는 내 코드를 더 읽기 쉽고 (그리고 더 쉽게 만들 수 있기 때문에 missingfaktor가 제안한 것처럼 미러를 사용했지만이 배경은 내면의 리플렉션 작업을 이해하는 데 필수적이다. – user1461521

0

"순서도의 모든 개체 이름"은 무엇입니까? 개체를 이름으로 저장하는 HashMap이 있습니까? 그렇다면, 그 이름으로 객체를 가져 와서 직접 반영하지 않고 그 메소드를 호출하십시오.

+0

감사합니다. Alexei - 객체 이름의 문자열이 포함 된 LinkedList를 언급했습니다. 나는 앞으로 나아갈 필요가있는 해답을 얻었지만 (위의 답 참조) 도움을 주셔서 감사합니다. :-) – user1461521

관련 문제