2015-09-11 98 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

Hi @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並告訴他t爲返回類型爲類型系那麼當你用你的方法,你會直接調用:

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