0

我必须解决一个工作问题,因为我对java不是很流利,所以我坚持使用它。

简而言之,我有一个循环,它通过 aMap<String, String>值定义循环内部的变量类型的名称。我试图以多种方式解决问题;我使用了反射和一些通用类,但问题总是一样的:程序无法访问该生成对象的方法,因为我无法确定它的类型。当对象被调用时,我必须接收一个ArrayList<String>并将其附加到一个,这是在项目的主类中定义的(顺便说一句:eclipse 没有显示任何错误,我得到一个运行时异常)。

所以问题是:我如何能够从循环内部的字符串(我假设使用反射)分配具有动态类型的变量并从存储在其中的对象访问方法?

4

2 回答 2

3

到目前为止,听起来应该是这样的:

for (Map.Entry<String, String> entry : myMap.entrySet()){

    Class<?> clazz = Class.forName(entry.getValue());
    ADBBean bean = (ADBBean)clazz.newInstance();
    Method method = clazz.getMethod("methodName", String.class, Integer.class, etc);
    method.invoke(bean, "blah", 145);
}
于 2012-10-29T11:02:39.647 回答
0

我认为您正在寻找模板/通用编程。 http://en.wikipedia.org/wiki/Generics_in_Java

于 2012-10-29T10:57:09.110 回答