我有一个方法,可以使用以下代码从数据库返回所有Article
:
public static List getAllArticles(){
Session se=openSession();
List li=se.createCriteria(Article.class).list();
se.close();
return li;
}
但是当我想在结果上使用for-each时:
for(Article a :Boss.getAllArticles()){
//
}
显示此错误:
不兼容的类型:对象无法转换为
Article
答案 0 :(得分:3)
您可以使用泛型来简化此操作。您的getAllArticles
可以返回Article
个对象的列表。它看起来像这样:
public static List<Article> getAllArticles(){
Session se=openSession();
List<Article> li= (List<Article>)(se.createCriteria(Article.class).list());
se.close();
return li;
}
然后你应该能够使用你展示的循环迭代它:
for(Article a : Boss.getAllArticles()){
//
}
答案 1 :(得分:1)
将List
用作通用类型。然后迭代你的列表,它不需要转换你的对象。
List<Article> li=(List<Article>)se.createCriteria(Article.class).list();
答案 2 :(得分:1)
进行更改 -
return (List<Article>)li;
and public static List<Article> getAllArticles(){}
或者通过Object迭代,简单。
答案 3 :(得分:0)
尝试使用它。
List<Article > articleValueList = new ArrayList<Article >();
Criteria criteria = session.createCriteria(Article.class);
articleValueList = (List<Article>) criteria.list();
您可以迭代此articleValueList
以从数据库中获取值。