【发布时间】:2020-07-05 14:11:28
【问题描述】:
我有一个扩展基类的类列表
public class Entity{
abstract String getTitle();
}
子类是
public class ChildEntityOne extends Entity{
public static final String TITLE= "ABCD";
@Override
public String getTitle() {
return TITLE;;
}
}
public class ChildEntityTwo extends Entity{
public static final String TITLE= "EFGH";
@Override
public String getTitle() {
return TITLE;;
}
}
public class ChildEntityThree extends Entity{
public static final String TITLE= "WXYZ";
@Override
public String getTitle() {
return TITLE;;
}
}
现在我正在尝试将有效类列表传递给函数 它从列表中的一个类创建一个实例并返回它
List<?ClassesToChooseFrom?> list = new ArrayList()<>;
list.add(?ChildEntityOne?);
list.add(?ChildEntityTwo?);
Entity result = getInstantiatedClass(list,getKey(),getjsonData())
if(result instanceof ChildEntityOne){
//do something
}else if(result instanceof ChildEntityTwo){
//do somwthing
}
public ?InstantiatedClassObject? getInstantiatedClass(List<?ClassesToChooseFrom?> list,String key,String jsonData){
foreach(?Class? itemclass : list){
if(itemClass.getTitle().equals(key)){
return new GsonBuilder().create().fromJson(jsonData, itemClass);}
}
return null;
}
我试过了 列表> 类 = 新的 ArrayList();
但无法走得更远..
【问题讨论】:
标签: java android class generics gson