列出<dbobject>转换为List <category> </category> </dbobject>

时间:2012-12-16 07:47:10

标签: java

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

我打电话的时候:

CategoryDBAdapter categoryDbAdapter = new CategoryDBAdapter(dbHelper);

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

我的代码无法将List<DBObject>投射到List<Category>。解决此冲突的常用方法是什么?

2 个答案:

答案 0 :(得分:2)

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

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

class DBCategoryAdapter extends DBAdapter<Category> {

}

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

答案 1 :(得分:0)

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