本篇內(nèi)容主要講解“Java程序員慣性思維的錯(cuò)誤是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Java程序員慣性思維的錯(cuò)誤是什么”吧!
專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)馬邊彝族免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
有表結(jié)構(gòu)如下:
T_SOME_TABLE{ crowid varchar(36); zrmb float(7,3); zjdw float(7,3); }
問以下兩段代碼,哪段會(huì)出現(xiàn)錯(cuò)誤,為什么?
代碼片段一:
//后臺(tái)代碼如下: 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實(shí)現(xiàn)查詢HQL匯總語句返回結(jié)果List request.setAttribute("sumList",sumList); //前臺(tái)代碼如下: 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);
代碼片段二:
//后臺(tái)代碼如下: String hqlStr="select SUM(t.zrmb) AS SUM_1 from T_SOME_TABLE t where 1=1 "; List sumList=baseDao.find(hqlStr);//hibernate實(shí)現(xiàn)查詢HQL匯總語句返回結(jié)果List request.setAttribute("sumList",sumList); //前臺(tái)代碼如下: 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);
實(shí)際運(yùn)行會(huì)發(fā)現(xiàn) 代碼片段2會(huì)出現(xiàn)錯(cuò)誤 而代碼片段1是正??梢赃\(yùn)行的,這里是在功能開發(fā)過程中 片段2是在片段1的基礎(chǔ)上慣性思維去實(shí)現(xiàn)的,而實(shí)際運(yùn)行卻會(huì)發(fā)現(xiàn) 結(jié)果并不是想要的那樣,這個(gè)動(dòng)手能力強(qiáng)的人可以實(shí)際調(diào)試一下就會(huì)很快明白里面的所以然。這里簡單說一下:
做過hibernate的人都知道 用hibernate調(diào)用sql查詢出的匯總語句,返回的結(jié)果是封裝成Object的保存到List中的,而代碼1和代碼2相比較,差別只是在字段的多少上,如果是2個(gè)以上的字段 結(jié)果是封裝成Object[]數(shù)組的,這個(gè)無可爭議,但是如果是一個(gè)字段的話List里保存的是Object,而不是Object[]數(shù)組。
這樣就可以推論這里hibernate內(nèi)部是做了處理的。
代碼2循環(huán)中應(yīng)該是:
Object tempObj=(Object)sumList.get(i); sum1=tempObj==null?"0.0":tempObj.toString();
到此,相信大家對“Java程序員慣性思維的錯(cuò)誤是什么”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
當(dāng)前名稱:Java程序員慣性思維的錯(cuò)誤是什么
當(dāng)前網(wǎng)址:http://jinyejixie.com/article14/jpdjde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、品牌網(wǎng)站制作、用戶體驗(yàn)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站制作、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)