假设我有两个实现接口 A 的类 Foo 和 Bar。我想要创建 Foo 或 Bar 的 ArrayList。在命令行参数中,用户必须输入 Foo 或 Bar 来说明他们试图创建 ArrayList 的对象。
所以:
public static void main(String [] args){
String type = args[0];
ArrayList<type> list = new ArrayList<type>();
}
我如何从字符串类型转到对类 Foo 或 Bar 的引用,所以它正在做
ArrayList<Foo> list = new ArrayList<Foo>();
or
ArrayList<Bar> list = new ArrayList<Bar>();
这样我可以做到以下几点:
for(int i = 0 ; i < list.size() ; i++){
list(i).doSomething();
//doSomething is a function in interface A that Foo and Bar are required to implement
}
明确地说,我不想要类似的东西
if (type.equals("Foo")) list = ArrayList<Foo>();
我希望能够使用与类型同名的任何有效类创建一个 ArrayList。