2015-09-11 2 views
0

Привет, как мой общий метод типа возвращает список следующим образомПреобразование списка классов универсального типа в список объектов

List<Class<Department>> departmentsByAppId = commonDao.getDaoData(new Object[]{appStateObject.getAppId()}, new String[]{"appId"}, new String[]{"eq"}, Department.class); 

Так как мы можем преобразовать эти данные в обычный список, как List<Department> без перебора.

+1

что тип возвращаемого значения метода commonDao.getDaoData. –

+0

Привет @ChamlyIdunil Iduni Спасибо за ваш ответ, а тип возврата этого метода - Список getDaoData (-). –

+0

Что находится в скобках? Это важно. – dasblinkenlight

ответ

1

Предполагая, что ваш общий метод типа объявлен в общем интерфейсе и, что отдел получил интерфейс DAO, который проходит что в прошлом один, вы могли бы сделать что-то подобное:

YourGenericDaoInterface.java:

public interface YourGenericDaoInterface<E> { 

    List<E> getDaoData(Object[] objArray, String[] appId, String[] eq, Class clazz); 

} 

YourGenericDaoImplementation.java:

@Override 
List<E> getDaoData(Object[] objArray, String[] appId, String[] eq, Class clazz) { 
    // do your stuff here 
} 

YourDepartmentDaoInterface.java:

public interface YourDepartmentDaoInterface extends YourGenericDaoInterface<Department> { 

} 

Так в основном он делает следующее:

  • Делая YourDepartmentDaoInterface наследованная YourGenericDaoInterface<Department> вы получаете метод getDaoData и скажите т возвращаемого типа управления типа тогда, когда вы будете использовать ваш метод, вы будете напрямую позвонить:

List<Department> dep = commonDao.getDaoData(new Object[] appStateObject.getAppId()}, new String[]{"appId"}, new String[]{"eq"}, Department.class);

+0

Спасибо @Deh. Это сработало. Я не знал, как это очень просто. –

0

Вы можете просматривать список и добавлять каждый объект в другой список после выполнения соответствующего литья: -

List list = new ArrayList(); 
    for(int i=0;i<=departmentsByAppId.size();i++) 
    { 
    list.add((Department)departmentsByAppId.get(i)); 
    } 
+0

"преобразовать эти данные в обычный список likeList ** без итерации **." – dasblinkenlight

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