0

我有一个超类DBAdapter,它有fetchAll()从数据库表中选择所有记录的方法List<DBObject>。我已经继承了这个类CategoryDBAdapter,这个类知道Category从 扩展的类DBObject

当我打电话时:

CategoryDBAdapter categoryDbAdapter = new CategoryDBAdapter(dbHelper);

List<Category> categories = categoryDbAdapter.fetchAll();

我的代码无法List<DBObject>转换为List<Category>. 解决这种冲突的常用方法是什么?

4

2 回答 2

2

您可以更改 DBAdapter 和 DBCategoryAdapter 类以使用泛型:

class DBAdapter<T extends DBObject> {
    List<T> fetchAll() {
        ...
    }
}

class DBCategoryAdapter extends DBAdapter<Category> {

}

您还需要调整 fetchAll() 方法的内容,这有多容易取决于您的实现。

于 2012-12-16T09:11:38.567 回答
0

我不认为有任何直接的方法。您需要为Category元素创建一个新列表 ( List<Category> categoryList),迭代返回的DBObject元素列表 ( List<DBObject> dbOjectsList),转换元素 ( Category category = (Category) dbObject;) 并将类别元素列表 ( ) 添加到新列表中categoryList.add(category);

于 2012-12-16T07:59:09.607 回答