有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在java中单独访问列表元素时获取ClassCastException异常

下面是我的Java代码,在一个名为DnsTime的类中:

List<DnsTime> list = new ArrayList<DnsTime>();  
String selUrl = "http://www.abc.com";   
String query = "select dns_time,update_time from dns_time where url=?";   
list = session.createSQLQuery(query).setString(0,selUrl).list();  
/* getting dns_time and update_time from each record(row) using 
   for inside another for loop  */

for (int i = 0; i < list.size(); i++) {
    List<DnsTime> innerlist = (List<DnsTime>) list.get(i);
    for (int j = 0; j < innerlist.size(); j++) {
         System.out.println(innerlist.get(j));
    }
}

这是Java中的程序代码,用于在执行查询后从列表中获取列表元素。我正在使用Hibernate。我的查询正在运行,但问题在于获取列表元素:我得到了一个异常

java.lang.ClassCastException: can not cast java.lang.object to java.util.List

如何从每个列表行分别获取列表元素


共 (1) 个答案

  1. # 1 楼答案

    您正试图将列表中的对象/条目强制转换为列表。只有在有列表的情况下才能这样做,问题是这一行:

    List<DnsTime> innerlist=(List<DnsTime>)list.get(i);
    

    list.get(i)将给您一个DnsTime对象,而不是DnsTime列表,并且您的列表声明为List<DnsTime> list=new ArrayList<DnsTime>();

    根据从数据库中获取的内容,您需要正确声明列表或更改获取的项