首先我制作一个ArrayList
。 (?
意味着我不知道应该在那里,继续阅读)
ArrayList<?> arrayList = new ArrayList<?>();
因此,这将存储抽象类Class
的类名,例如,它可能存储ExtendedClass1
或ClassExtended2
。
稍后我遍历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
}
我怎么能真正做到这一点?
答案 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();
...
}