Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何迭代标准生成的列表?_Java_Hibernate_Hibernate Criteria - Fatal编程技术网

Java 如何迭代标准生成的列表?

Java 如何迭代标准生成的列表?,java,hibernate,hibernate-criteria,Java,Hibernate,Hibernate Criteria,我有一个方法,它使用以下代码从数据库返回所有文章s: public static List getAllArticles(){ Session se=openSession(); List li=se.createCriteria(Article.class).list(); se.close(); return li; } 但当我想对每个结果使用时,如下所示: for(Article a :Boss.getAllArticles()){ /

我有一个方法,它使用以下代码从数据库返回所有
文章
s:

public static List getAllArticles(){
    Session se=openSession();
    List li=se.createCriteria(Article.class).list();
    se.close();
    return li;
}
但当我想对每个结果使用时,如下所示:

for(Article a :Boss.getAllArticles()){
          //      
   }
此错误显示:

不兼容类型:对象无法转换为
文章


您可以使用泛型来简化此过程。您的
getAllArticles
可以返回
文章
对象的列表。它看起来是这样的:

public static List<Article> getAllArticles(){
    Session se=openSession();
    List<Article> li= (List<Article>)(se.createCriteria(Article.class).list());
    se.close();
    return li;
}

您可以使用泛型来简化此过程。您的
getAllArticles
可以返回
文章
对象的列表。它看起来是这样的:

public static List<Article> getAllArticles(){
    Session se=openSession();
    List<Article> li= (List<Article>)(se.createCriteria(Article.class).list());
    se.close();
    return li;
}

使用您的
列表
作为泛型类型。然后迭代列表,不需要强制转换对象

List<Article> li=(List<Article>)se.createCriteria(Article.class).list();
List li=(List)se.createCriteria(Article.class.List();

将您的
列表
用作泛型类型。然后迭代列表,不需要强制转换对象

List<Article> li=(List<Article>)se.createCriteria(Article.class).list();
List li=(List)se.createCriteria(Article.class.List();

根据以下内容进行更改-

return (List<Article>)li; 
and public static List<Article> getAllArticles(){}
返回(列表)li;
和公共静态列表getAllArticles(){}

或通过简单的对象进行迭代。

进行如下更改-

return (List<Article>)li; 
and public static List<Article> getAllArticles(){}
返回(列表)li;
和公共静态列表getAllArticles(){}

或者通过简单的对象进行迭代。

也可以尝试使用此方法进行计算

List<Article > articleValueList = new ArrayList<Article >();
Criteria criteria = session.createCriteria(Article.class);
articleValueList = (List<Article>) criteria.list();
List-articleValueList=new-ArrayList();
条件=session.createCriteria(Article.class);
articleValueList=(列表)条件。列表();

您可以迭代此
articleValueList
以从Database获取值。

也可以尝试使用此方法进行计算

List<Article > articleValueList = new ArrayList<Article >();
Criteria criteria = session.createCriteria(Article.class);
articleValueList = (List<Article>) criteria.list();
List-articleValueList=new-ArrayList();
条件=session.createCriteria(Article.class);
articleValueList=(列表)条件。列表();

您可以迭代此
Article ValueList
以从Database获取值。

当您可以使用泛型时,为什么要强制转换?Agree@kostja,但考虑到O.p.为什么要强制转换,当您可以使用泛型时?Agree@kostja,但考虑快速简单的解决方案,考虑到O.P.应该是可以接受的答案,因为它避免了不必要的铸造。抱歉,但只是想知道-
List li=(List)(se.createCriteria(Article.class).List())这不也是一个强制转换吗?是的,您需要强制转换为
list()
方法返回一个非参数化的
list
对象。不管它值多少钱,我认为你的回答也很好!我没有注意到答案也有选择,实际上这两个答案是相同的,根据回答的时间,我最终选择了这个答案,因为它的提交时间。我还投了任何正确的答案!应该是可以接受的答案,因为它避免了不必要的强制转换。抱歉,但只是想知道-
List li=(List)(se.createCriteria(Article.class.List())这不也是一个强制转换吗?是的,您需要强制转换为
list()
方法返回一个非参数化的
list
对象。不管它值多少钱,我认为你的回答也很好!我没有注意到答案也有选择,实际上这两个答案是相同的,根据回答的时间,我最终选择了这个答案,因为它的提交时间。我还投了任何正确的答案!