我有一个String数组,它对应于我的一个包中的Classes名称。
例如,假设我有一个包含三个项目的ArrayList:“ A1”,“ A2”,“ A3”。
我想使用如下代码创建这些类的实例:
Class<?> objectToCreate = (Class<?>) MyStaticClass.class.getClassLoader().loadClass(objectToCreate);
<?> objectCreated = objectToCreate.newInstance();
这样,在遍历以上代码行之后,我将拥有一个A1类的实例,一个A2类的实例和一个A3类的实例。
有人知道这是否可能吗?我意识到这是“让Google为您服务”的领域,但我一直在努力思考要提供答案的名词!
最佳答案
您需要?
而不是通配符,这意味着必须在某个地方定义它。您的选择位于方法或类上。我希望方法会起作用,因此请尝试将其包装在方法中,如下所示:
public <T> T create(String name) {
Class<T> objectToCreate = (Class<T>) MyStaticClass.class.getClassLoader().loadClass(objectToCreate);
T objectCreated = objectToCreate.newInstance();
return objectCreated;
}
关于java - 创建Class <?>对象,其中<?>在ArrayList <String>中定义为字符串-Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6469477/