将类动态分配给通用列表

时间:2014-11-23 14:45:40

标签: java android

我正在尝试创建一个接受类对象的函数,然后该函数将使用该对象来检索它的类并将其用作xml解析的模型。该函数如下所示:

myClass myClassObject=new myClass();
List aList = parseXMLtoList(stringBuffer.toString(),myClassObject);

private List parseXMLtoList(String xmlString,Object modelClassObject) {
    List<modelClassObject.getClass()> xmlList = new ArrayList(); //modelClassObject cannot be resolved to a type
...

但是当我尝试动态地使用反射到给定的类时,它会给我这个错误:modelClassObject cannot be resolved to a type

怎么能实现这个目标?请帮忙。

2 个答案:

答案 0 :(得分:0)

不要以为你可以实施它。作为其他此类东西的集合类型仅用于编译时。所以只需使用List。

答案 1 :(得分:0)

你必须使用这样的泛型:

MyClass myClassObject= new MyClass();
List<MyClass> aList = parseXMLtoList("<some_xml/>", myClassObject);


private static <T> List<T> parseXMLtoList(String xmlString, T modelClassObject) {
    List<T> xmlList = new ArrayList<T>();

您可以通过在通用定义中添加它来限制可以使用的类型:

private static <T extends MyClass>

有关泛型的更多信息:https://docs.oracle.com/javase/tutorial/java/generics/