文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java程序员惯性思维的错误是什么

2023-06-17 12:31

关注

本篇内容主要讲解“Java程序员惯性思维的错误是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java程序员惯性思维的错误是什么”吧!

有表结构如下:

T_SOME_TABLE{ crowid varchar(36); zrmb float(7,3); zjdw float(7,3); }

问以下两段代码,哪段会出现错误,为什么?

代码片段一:

//后台代码如下:     String hqlStr="select SUM(t.zrmb) AS SUM_1,SUM(t.zjdw) AS SUM_2 from T_SOME_TABLE t where 1=1 ";     List sumList=baseDao.find(hqlStr);//hibernate实现查询HQL汇总语句返回结果List     request.setAttribute("sumList",sumList);  //前台代码如下:     String sum1="";     String sum2="";     ArrayList sumList=request.getAttribute("sumList")==null?null:(ArrayList)request.getAttribute("sumList");     if(null!=sumList){         for(int i=0;i<sumList.size();i++){             Object[] tempObj=(Object[])sumList.get(i);             sum1=tempObj[0]==null?"0.0":tempObj[0].toString();             sum2=tempObj[1]==null?"0.0":tempObj[1].toString();         }     }     out.prinln("sum1:"+sum1);     out.prinln("sum2:"+sum2);

代码片段二:

//后台代码如下:     String hqlStr="select SUM(t.zrmb) AS SUM_1  from T_SOME_TABLE t where 1=1 ";     List sumList=baseDao.find(hqlStr);//hibernate实现查询HQL汇总语句返回结果List     request.setAttribute("sumList",sumList);  //前台代码如下:     String sum1="";     ArrayList sumList=request.getAttribute("sumList")==null?null:(ArrayList)request.getAttribute("sumList");     if(null!=sumList){         for(int i=0;i<sumList.size();i++){             Object[] tempObj=(Object[])sumList.get(i);             sum1=tempObj[0]==null?"0.0":tempObj[0].toString();         }     }     out.prinln("sum1:"+sum1);

实际运行会发现 代码片段2会出现错误 而代码片段1是正常可以运行的,这里是在功能开发过程中 片段2是在片段1的基础上惯性思维去实现的,而实际运行却会发现 结果并不是想要的那样,这个动手能力强的人可以实际调试一下就会很快明白里面的所以然。这里简单说一下:

做过hibernate的人都知道 用hibernate调用sql查询出的汇总语句,返回的结果是封装成Object的保存到List中的,而代码1和代码2相比较,差别只是在字段的多少上,如果是2个以上的字段 结果是封装成Object[]数组的,这个无可争议,但是如果是一个字段的话List里保存的是Object,而不是Object[]数组。

这样就可以推论这里hibernate内部是做了处理的。

代码2循环中应该是:

Object tempObj=(Object)sumList.get(i);  sum1=tempObj==null?"0.0":tempObj.toString();

到此,相信大家对“Java程序员惯性思维的错误是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯