本篇内容主要讲解“Java程序员惯性思维的错误是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java程序员惯性思维的错误是什么”吧!
专注于为中小企业提供成都网站建设、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业马边彝族免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
有表结构如下:
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代码片段二:
//后台代码如下: 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实际运行会发现 代码片段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程序员惯性思维的错误是什么”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
分享文章:Java程序员惯性思维的错误是什么
链接地址:http://lswzjz.com/article/jpdjde.html