我有一个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/

10-10 04:41