【发布时间】:2023-04-06 06:05:01
【问题描述】:
我必须解决一个工作问题,由于我对 java 不是很流利,所以我被困住了。
为了简短起见,我有一个循环通过Map<String, String>,其中的值定义了循环内的变量类型的名称。我试图以多种方式解决问题;我使用了反射和一些泛型类,但问题总是相同的:程序无法访问该生成对象的方法,因为我无法确定它的类型。当对象被调用时,我必须接收一个ArrayList<String> 并将其附加到项目主类中定义的那个(顺便说一句:eclipse 没有显示任何错误,我得到一个运行时异常)。
所以问题是:我如何能够从循环内部的字符串(我假设使用反射)分配具有动态类型的变量,并从存储在其中的对象访问方法?
【问题讨论】:
-
你运行的是什么版本的JDK?
-
Class.forName().newInstance() + Class.forName().getMethod().invoke()。但就您而言,听起来您需要多态性。
-
您能提供一些代码或伪代码来显示您正在尝试做什么吗?我不清楚你想做什么?您有地图中的类名,您正在尝试创建该类的实例并在新创建的实例上调用方法?你怎么知道调用什么方法?它总是相同的方法签名吗?
-
您想要从中获取的字符串和对象以及初始化它们的值的任何示例?
-
看来我的回答应该有效。如果由于某种原因无法正常工作,请对其发表评论。
标签: java oop generics reflection