public List<String []> gethighAdminByKeyNO(String keyNO){
Query query=getSession().createQuery("select bean.keyValue,bean.showName from Dictionary bean);
query.setParameter("keyNO", keyNO);
List<String []> dictionaries=query.list();
//怎么样测试输出String[]数组中的数据
return dictionaries;
}
for(String []tmp: dictionaries)
{
for(String str:tmp)
{
System.out.println(tmp+":"+str);
}
}追问
[Ljava.lang.Object; cannot be cast to [Ljava.lang.String;报错这个??
追答类型转换错误, ..上面那段代码你加在什么位置了
追问List dictionaries=query.list();
//这里
return dictionaries;
"select bean.keyValue,bean.showName from Dictionary bean"
这个查出来的是String [] 数组对象吗? 里面放的是Dictionary
for(String []tmp: dictionaries)
{
for(Object obj:tmp)
{
if(obj instanceof Dictionary )
{
Dictionary d=(Dictionary)obj;
System.out.println(d.getKeyValue()+":"+d.getShowName())
}
}
}
我觉得是属性,应该是字符串数组
追答能Debug不
在List dictionaries=query.list();之后的代码处设个端点,看看出来的是什么对象...........
你把这个查询
select bean.keyValue,bean.showName from Dictionary bean
直接改成
select bean from Dictionary bean
返回一个对象的 List 不行吗?
for (Iterator iter = dictionaries.iterator(); iter.hasNext();)
{
System.out.println(iter.next());
}
输出查出的三个对象
[Ljava.lang.Object;@1000323
[Ljava.lang.Object;@1ce154c
[Ljava.lang.Object;@d868e5
出来的是一个对象啊, 你Debug了没有,这跟上面的问题还是一样的,问题是你都不知道这个对象是什么.....
切到Debug视图 ,跟踪一下 查询出来的List 里的对象类型是什么
刚刚查了一下,你先把你泛型去掉吧(你都不知道返回的dictionaries里装的是不是Sting[])
所以:你这样写吧
for(int i=0;i<dictionary.size();i++)
{
Object [] obj=(Object[])dictionary.get(i);
System.out.println(obj[0]+"------"+obj[1]);
}
参考:写不上了,不知道为什么....链接贴不了