如何解决java.lang.ClassCastException:无法将java.math.BigDecimal强制转换为[Ljava.lang.Object; 在java中

斯里

我正在通过查询获取值,接下来我尝试迭代值,但会引发错误

Session session = null;
   try{
     Query qu=session.createSQLQuery("select plot_no from house_details where type='duplex'");
    List<Long> li =  qu.list();
    System.out.println("---li---"+li.toString());
    for (Iterator itr = li.iterator(); itr.hasNext();) {
        Object[] obj = (Object[]) itr.next();
        String plotNo = (String) obj[0];
        if(plotNo=="501" || plotNo== "520" || plotNo== "601"){
        System.out.println("---if---");
        //code here
        }
        else{
        System.out.println("---else---");
        //code here
        }
    }
 }catch(Exception e){
       e.printStackTrace();

   }finally {
       if(session!=null){
        session.close();
     }
    }

输出:

---li---[501, 0, 101, 101, 114]
java.lang.ClassCastException: java.math.BigDecimal cannot be cast to [Ljava.lang.Object;

我的代码有什么问题。获取此行时出错

Object[] obj = (Object[]) itr.next();
String plotNo = (String) obj[0];
杰斯珀

的呼叫会itr.next传回BigDecimal,而不是Object[]您正在尝试将其转换为Object[]

Object[] obj = (Object[]) itr.next();
String plotNo = (String) obj[0];

您得到一个,ClassCastException因为它不是一个Object[]

用这一行替换上面的两行:

String plotNo = itr.next().toString();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档