有没有办法在Java中执行以下操作?
我想根据字符串值初始化ArrayList
。这里的字符串值肯定是子类名称之一。我知道使用Class< T >
类型来初始化任何类型的ArrayList
。但问题是,初始化列表应为List< ? extends ParentClass >
类型。有没有办法使用Class< T >
和< ? extends ParentClass >
?
class A{
String s;
}
class B extends A{
String b;
}
class D extends A{
String d;
}
class C{
List<? extends A> valueList;
public C(String s){
//The string s decides if the list is of type B or type C.
if(type B){
this.valueList = new ArrayList<type B>();
}
else{
this.valueList = new ArrayList<type D>();
}
}
}
编辑:正如&#39;&lt; &GT;&#39;获取类名,我想转换String值以在ArrayList&lt;中传递它。取代。我不确定我应该将String值转换为什么类型。