动态初始化子类ArrayList

时间:2018-03-16 10:21:36

标签: java collections

有没有办法在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值转换为什么类型。

0 个答案:

没有答案