`

一个惯性思维出现的错误-有点意思

阅读更多
很久没有积累东西了,碰巧前几天遇到一个的问题,虽然不大但是比较有意思,在这里稍微记录一下,以后可以作为面试题之类的考验其他人,想想也远比那些被我们诟病的题目要实际的多:




有表结构如下:

T_SOME_TABLE{

crowid varchar(36);

zrmb float(7,3);

zjdw float(7,3);

}


问以下两段代码,哪段会出现错误,为什么?
---------------------------------------代码片段1:--------------------------------------
后台代码如下:
	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);


---------------------------------------代码片段2:--------------------------------------
后台代码如下:

	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();



分享到:
评论

相关推荐

    如何克服惯性思维TRIZ相关创新工具简介.pptx

    - 解决方案唯一惯性思维:认为一个问题只有一个最佳答案。 - 多物质惯性思维:对多种物质组合的忽视。 - 物质价值惯性思维:过度重视某些物质的价值。 - 传统应用条件惯性思维:遵循传统的应用流程。 - 类似...

    我们如何正确思维-重点笔记

    联想之后,需要运用逻辑推理来对这些假设进行推断和验证,最终得到一个可靠的结论。 在文件中还提到了思维的四个含义:偶然的和随便的想法、对非直接接触到的事物的想法、基于非直接感受事物的信念以及通过认真调研...

    自动错误预防-AEP

    - **单元测试**:单元测试工作量大,存在思维惯性问题,覆盖率低,同样存在开发人员积极性不足的问题。 - **培训**:通过个人软件过程(Personal Software Process, PSP)等培训方法提高开发人员的能力,降低缺陷率...

    九大创新思维方法.pptx

    例如,当问题A再次出现但情境已经改变时,我们需要警惕思维定势可能导致的错误决策。 创新思维的培养要求我们保持开放的心态,勇于质疑现状,接受并尝试不同的思路。它不仅适用于科技领域的创新,同样适用于管理、...

    创新思维修炼教材.pptx

    定势思维、惯性思维、线性思维和偏见思维是几个典型的障碍。定势思维是指人们习惯于根据以往的经验和模式来处理问题,这往往会导致他们忽视新情况下的需求和可能性。例如,在五金店中,聋哑人买钉子的故事启示我们,...

    [思维的黑洞:大多数人都会犯的错误].李丽娜&amp;张英敏.扫描版.pdf

    7. 认知过程:对人类自身的认知过程,特别是对所谓的“黑箱”现象的研究,是人类探索自我的一个重要方面。尽管我们无法完全了解“黑箱”的运作机制,但对它的认识有助于我们理解人类的行为和心理。 8. 思维体系:...

    创新思维与技法的开发和应用技术类-5页.pdf

    【创新思维与技法的开发和...通过案例分析、故事讲述、游戏互动和实际操作,该课程旨在创建一个积极的创新氛围,鼓励参与者打破常规,挖掘潜在的创新机会,并在日常工作中运用创新思维和技法,以推动企业和个人的发展。

    2021年中考物理微专题复习 专题06 牛顿第一定律及惯性中考问题(教师版含解析).docx

    1. 牛顿第一定律:也被称为惯性定律,由牛顿提出,指出在没有受到外力作用时,物体将保持其原来的状态,即静止的物体将保持静止,匀速直线运动的物体将继续以相同的速度沿直线运动。这个定律不能直接通过实验得出,...

    惯性概念的认识及其影响(1).docx

    总的来说,惯性概念的形成和发展是物理学历史上的一个关键历程,它反映了人类对自然界规律的理解逐步深化的过程。从亚里士多德的朴素观念,到开普勒、伽利略、笛卡儿的贡献,再到牛顿的系统阐述,惯性概念的发展展示...

    创新思维宇通.pptx

    思维定势是人们在解决问题时,习惯性依赖权威观点、从众心理、过往经验或书本知识所形成的一种惯性思维模式。它可能会阻碍我们的创新思维,使我们在面对问题时难以跳出传统的框架。例如,面对权威观点时,我们可能会...

    游戏画面就弹出内存不能为read修复工具

    当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的光标,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现...

    提升创新思维能力让思想冲破牢笼.pptx

    第一个推销员受限于传统思维,认为市场不存在;第二个推销员则看到了潜在的巨大市场。这表明创新思维需要打破常规,敢于挑战既定的认知。 2. **愚蠢的断言** - 历史上的这些例子强调了传统观念和偏见如何阻碍创新。...

    创新思维复习题借鉴.pdf

    综上所述,创新思维是一个复杂而深入的思维过程,它涉及对问题本质的深刻洞察,要求个体在社会环境中不断创新,并以逻辑推理为基础,运用多种创新技法,实现知识的整合与创造。在这一过程中,个体需要不断培养和提升...

    高中物理竞赛知识系统整理--64页.doc

    总之,惯性力是物理学中一个重要的概念,它揭示了物体在非惯性参考系中的运动规律,并在很多实际问题中起到关键作用。深入理解和掌握惯性力,不仅有助于解决物理竞赛中的问题,更能培养科学思维,提升个人对世界的...

    过往总结——惯性思维设计导致的Zigbee通信能力差问题

    惯性思维设计导致的Zigbee通信能力差问题 总结:在设计Zigbee通信模块原理图和PCB时,因惯性思维导致了升版,付出了沉重的代价。本文总结了设计过程中遇到的问题和教训,强调了在设计中要认真对待每个电路的应用,...

    提升创新思维能力PPT教案.pptx

    第一个推销员因固守传统观念,认为无人穿鞋的岛屿没有市场,而第二个推销员则看到了巨大的商机。这表明创新思维是敢于突破现状,寻找新的可能性。 2. 愚蠢的断言案例展示了传统思维可能带来的错误判断。如个人电脑...

    提升创新思维能力.ppt

    案例分享中的岛屿故事揭示了一个核心观点:创新思维意味着敢于挑战现状,不被既有的认知框架所束缚。第一个推销员受限于传统的市场观念,而第二个推销员则看到了新的机遇。这表明,创新思维不仅需要观察力,更需要...

    提升创新思维能力(PPT37页).pptx

    - **案例1**:在二战后的建筑热潮中,这位青年通过深度思考,发现招聘广告本身就是一个机会,他可能提出了培训砖瓦工的新方案,从而赚取了财富。 - **案例2**:跳蚤变为“爬蚤”的实验揭示了适应性和思维局限性。...

    全国初中应用物理创新思维测评九年级.pdf

    9. 客车启动向左,氦气球受到向右的惯性力,会相对座椅向右移动,而小球因悬挂会向左移动,故最可能出现的位置是A。 10. 打印纸厚度5.00单位未知,如果是um,则每张纸约50um,质量约2.5kg,密度可能小于水,对桌面...

Global site tag (gtag.js) - Google Analytics