[Ljava.lang.Object;不能投射到 [英] [Ljava.lang.Object; cannot be cast to
本文介绍了[Ljava.lang.Object;不能投射到的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想从数据库中获得价值,在我的情况下,我使用 List
从数据库获取值,但是我得到了这个错误
线程main中的异常java.lang.ClassCastException:[Ljava.lang.Object;无法转换为id.co.bni.switcherservice.model.SwitcherServiceSource
在id.co.bni.switcherservice.controller.SwitcherServiceController.LoadData(SwitcherServiceController.java:48)
at id.co.bni .switcherservice.controller.SwitcherServiceController.main(SwitcherServiceController.java:62)
这是我的代码 p>
Query LoadSource = session_source.createQuery(select CLIENT,SERVICE,SERVICE_TYPE,PROVIDER_CODE,COUNT(*)FROM SwitcherServiceSource+
,其中TIMESTAMP介于:awal和:akhir+
,PROVIDER_CODE不是由CLIENT,SERVICE,SERVICE_TYPE,PROVIDER_CODE命令的CLIENT,SERVICE,SERVICE_TYPE,PROVIDER_CODE命令的空组)。
LoadSource.setParameter(awal,fromDate);
LoadSource.setParameter(akhir,toDate);
List< SwitcherServiceSource> result_source =(List< SwitcherServiceSource>)LoadSource.list(); (SwitcherServiceSource tes:result_source)
{
System.out.println(tes.getSERVICE());
}
任何帮助都会令您高兴:)
@raffian,你的意思是这样吗?
List< Switcher> result =(List< Switcher>)LoadSource.list();
(Switcher tes:result){
System.out.println(tes.getSERVICE());
}
解决方案
java.lang.ClassCastException:[Ljava.lang.Object;无法转换为id.co.bni.switcherservice.model.SwitcherServiceSource
问题在于
(List< SwitcherServiceSource>)LoadSource.list();
这将返回一个对象数组(列表对象[]) SwitcherServiceSource
表中每个列的标量值。 Hibernate将使用ResultSetMetadata推断返回标量值的实际顺序和类型。
解决方案
列表与LT;对象> result =(List< Object>)LoadSource.list();
Iterator itr = result.iterator();
while(itr.hasNext()){
Object [] obj =(Object [])itr.next();
//现在每行有一个Object数组
String client = String.valueOf(obj [0]); //不知道列的类型CLIENT假定String
Integer service = Integer.parseInt(String.valueOf(obj [1])); // SERVICE假定为int
//对于所有obj [2],obj [3],obj [4]
}
相关连结
I want to get value from the database, in my case I use List
to get the value from the database but I got this error
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to id.co.bni.switcherservice.model.SwitcherServiceSource
at id.co.bni.switcherservice.controller.SwitcherServiceController.LoadData(SwitcherServiceController.java:48)
at id.co.bni.switcherservice.controller.SwitcherServiceController.main(SwitcherServiceController.java:62)
this is my code
Query LoadSource = session_source.createQuery("select CLIENT,SERVICE,SERVICE_TYPE,PROVIDER_CODE,COUNT(*) FROM SwitcherServiceSource" +
" where TIMESTAMP between :awal and :akhir" +
" and PROVIDER_CODE is not null group by CLIENT,SERVICE,SERVICE_TYPE,PROVIDER_CODE order by CLIENT,SERVICE,SERVICE_TYPE,PROVIDER_CODE");
LoadSource.setParameter("awal", fromDate);
LoadSource.setParameter("akhir", toDate);
List<SwitcherServiceSource> result_source = (List<SwitcherServiceSource>) LoadSource.list();
for(SwitcherServiceSource tes : result_source){
System.out.println(tes.getSERVICE());
}
any help will be pleasure :)
@raffian, did you mean like this??
List<Switcher> result = (List<Switcher>) LoadSource.list();
for(Switcher tes : result){
System.out.println(tes.getSERVICE());
}
解决方案
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to id.co.bni.switcherservice.model.SwitcherServiceSource
Problem is
(List<SwitcherServiceSource>) LoadSource.list();
This will return a List of Object arrays (Object[]) with scalar values for each column in the SwitcherServiceSource
table. Hibernate will use ResultSetMetadata to deduce the actual order and types of the returned scalar values.
Solution
List<Object> result = (List<Object>) LoadSource.list();
Iterator itr = result.iterator();
while(itr.hasNext()){
Object[] obj = (Object[]) itr.next();
//now you have one array of Object for each row
String client = String.valueOf(obj[0]); // don't know the type of column CLIENT assuming String
Integer service = Integer.parseInt(String.valueOf(obj[1])); //SERVICE assumed as int
//same way for all obj[2], obj[3], obj[4]
}
Related link
这篇关于[Ljava.lang.Object;不能投射到的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文