Estou trabalhando em um ambiente de simulação chamado AnyLogic e ele usa Java como código subjacente.
No meu exemplo, o usuário desenha um fluxograma e, em tempo de execução, cada elemento do fluxograma é instanciado. Eu posso determinar o que o usuário desenhou pelo código:
LinkedList eo = (LinkedList) this.getEmbeddedObjects();
- que retorna uma lista de Strings representando os nomes de todos os objetos no fluxograma.
Eu gostaria de acessar dinamicamente esses objetos "métodos, mas eu sou novo em Java e não tenho certeza de como fazer isso. Pelo que entendi da reflexão, posso instanciar um classForName, mas nesse caso eu já instanciei objetos e quero usar as Strings para acessá-los.
Não sei como proceder e agradeço sugestões.
Obrigado :-)
Respostas:
1 para resposta № 1Você pode usar API de reflexão Java para a tarefa.
Essa API é um pouco detalhada, no entanto. Se isso é um problema, você deve procurar um dos disponíveis fluente reflexão APIs.
2 para resposta № 2
http://java.sun.com/developer/technicalArticles/ALT/Reflection/
Você pode obter uma lista de nomes de métodos, encontrar o que deseja e invocá-lo.
0 para resposta № 3
o que é "nomes de todos os objetos nofluxograma "? Você tem algum HashMap que armazena objetos por seus nomes? Nesse caso, basta obter um objeto pelo nome e chamar seus métodos diretamente, sem qualquer reflexão.