2014-11-23 2 views
0

Я пытаюсь создать функцию, которая возьмет объект класса, а затем функция будет использовать этот объект для извлечения его класса и использовать его в качестве модели для синтаксического анализа 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

Как этого добиться? пожалуйста помоги.

ответ

0

Не думайте, что вы можете его реализовать. Типы коллекций, как и другие подобные материалы, предназначены только для времени компиляции. Поэтому просто используйте List.

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/

Смежные вопросы