在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 楼答案
您正试图将列表中的对象/条目强制转换为列表。只有在有列表的情况下才能这样做,问题是这一行:
list.get(i)
将给您一个DnsTime对象,而不是DnsTime列表,并且您的列表声明为List<DnsTime> list=new ArrayList<DnsTime>();
根据从数据库中获取的内容,您需要正确声明列表或更改获取的项