我正在一个名为AnyLogic的模拟环境中工作,它使用Java作为底层代码。
在我的示例中,用户绘制流程图,并在运行时实例化流程图的每个元素。我可以通过代码确定用户绘制的内容:
LinkedList eo = (LinkedList) this.getEmbeddedObjects();
我想动态访问这些对象的方法,但我是Java的新手,不知道如何解决这个问题。根据我对反射的理解,我可以实例化一个classForName,但是在这种情况下我已经有了实例化的对象,我想使用字符串来访问它们。
我不确定如何继续并感谢任何建议。
谢谢: - )
答案 0 :(得分:2)
http://java.sun.com/developer/technicalArticles/ALT/Reflection/
您可以获取方法名称列表,找到所需的方法名称并调用它。
答案 1 :(得分:1)
您可以使用Java reflection API完成任务。
虽然这个API有点冗长。如果这是一个问题,那么您应该选择其中一个fluent reflection APIs。
答案 2 :(得分:0)
什么是“流程图中所有对象的名称”? 你有一些HashMap按名字存储对象吗?如果是这样,只需按名称获取一个对象并直接调用其方法,而不进行任何反射。