本篇內(nèi)容主要講解“Java程序員慣性思維的錯誤是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Java程序員慣性思維的錯誤是什么”吧!
專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)馬邊彝族免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
有表結(jié)構(gòu)如下:
T_SOME_TABLE{ crowid varchar(36); zrmb float(7,3); zjdw float(7,3); }
問以下兩段代碼,哪段會出現(xiàn)錯誤,為什么?
代碼片段一:
//后臺代碼如下: 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實現(xiàn)查詢HQL匯總語句返回結(jié)果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實現(xiàn)查詢HQL匯總語句返回結(jié)果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實際運行會發(fā)現(xiàn) 代碼片段2會出現(xiàn)錯誤 而代碼片段1是正??梢赃\行的,這里是在功能開發(fā)過程中 片段2是在片段1的基礎(chǔ)上慣性思維去實現(xiàn)的,而實際運行卻會發(fā)現(xiàn) 結(jié)果并不是想要的那樣,這個動手能力強的人可以實際調(diào)試一下就會很快明白里面的所以然。這里簡單說一下:
做過hibernate的人都知道 用hibernate調(diào)用sql查詢出的匯總語句,返回的結(jié)果是封裝成Object的保存到List中的,而代碼1和代碼2相比較,差別只是在字段的多少上,如果是2個以上的字段 結(jié)果是封裝成Object[]數(shù)組的,這個無可爭議,但是如果是一個字段的話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程序員慣性思維的錯誤是什么”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
網(wǎng)頁標(biāo)題:Java程序員慣性思維的錯誤是什么
文章地址:http://weahome.cn/article/jpdjde.html