创建存储在列表中的类实例

时间:2018-06-18 09:48:31

标签: java reflection instance

首先我制作一个ArrayList。 (?意味着我不知道应该在那里,继续阅读)

ArrayList<?> arrayList = new ArrayList<?>();

因此,这将存储抽象类Class的类名,例如,它可能存储ExtendedClass1ClassExtended2

稍后我遍历ArrayList并创建名称存储在arraylist

中的新对象
for (int i = 0; i < arrayList.size(); i++) {
    new arrayList.get(i); // Takes the class name and makes new object out of it
}

我怎么能真正做到这一点?

1 个答案:

答案 0 :(得分:2)

你需要存储String类名,然后使用反射来创建实例,假设它是你将要使用的反射:

List<String> arrayList = new ArrayList<>();
arrayList.add("fully.qualified.ExtendedClass1");
arrayList.add("fully.qualified.ClassExtended2");

然后,在你的循环中:

for(int i = 0; i < arrayList.size(); i++) {
    Class<?> cls = Class.forName(arrayList.get(i)); //Get class for the name

    Object instance = cls.newInstance();
    ...
}