隨筆 - 4  文章 - 13  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          我的評(píng)論

          @lvq810
          4樓給出的解釋?xiě)?yīng)該是正確的。下面是CSDN的網(wǎng)友MT502給出的解答:
          MAP在執(zhí)行put()的時(shí)候先調(diào)用myPolSchema的hashCode()方法看當(dāng)前有沒(méi)有一樣的hashCode存在,如果沒(méi)有就直接put,有的話就調(diào)用myPolSchema的equals()方法看是否相等。
          因?yàn)槟銢](méi)有實(shí)現(xiàn)hashCode(),所以用默認(rèn)的hashCode(),所以當(dāng)產(chǎn)生相同的hashCode的時(shí)候(在我機(jī)器上是運(yùn)行到2058時(shí)),因?yàn)闄z查到相同的hashcode,所以調(diào)用你自己的equals(),因?yàn)镚rpContNo是null,所以這時(shí)候拋NullPointerException 。
          你機(jī)器上顯然是在1500的時(shí)候產(chǎn)生了相同了hashcode()。
          如果實(shí)現(xiàn)了hashCode(),第一次就拋NullPointerException :

          Java codepublic int hashCode() {
          final int prime = 31;
          int result = 1;
          result = prime * result
          + ((GrpContNo == null) ? 0 : GrpContNo.hashCode());
          result = prime * result
          + ((GrpPolNo == null) ? 0 : GrpPolNo.hashCode());
          return result;
          }


          我現(xiàn)在在想,如何去重寫(xiě)hashCode方法才能保證生成的hashCode值不同呢……

          或者去修改我的equals算法,在調(diào)用之前先去判斷一下other.getGrpContNo==null(這兩種方法怎么實(shí)現(xiàn)起來(lái)才算是比較合理的算法呢?

          @paul xu
          方法很簡(jiǎn)單,在被格式化的數(shù)據(jù)上加一個(gè)很小很小的正數(shù)即可
          double dTest=82.545d;
          DecimalFormat format=new DecimalFormat("0.00");
          System.out.println(format.format(dTest+0.00000001));

          輸出結(jié)果就是傳統(tǒng)意義上的四舍五入了
          我還需要向樓主請(qǐng)教這些問(wèn)題:
          以前做C#時(shí),我做類似樓主說(shuō)的“按需取數(shù)”是這樣的:從數(shù)據(jù)庫(kù)中取出數(shù)據(jù)集所需要的數(shù)據(jù)記錄數(shù),然后顯示給dataTable,
          比如數(shù)據(jù)庫(kù)中現(xiàn)在有1000條記錄,設(shè)置分頁(yè)10/頁(yè),現(xiàn)在我需要取第2頁(yè)的數(shù)據(jù),那么用
          select * from tablename where rownum>10 and rownum<=2*10
          查詢出來(lái)記錄(以oracle為例),然后將它保存至ArrayList中,將該ArrayList返回給DataModal以供DataTable綁定使用。

          查詢出來(lái)的記錄轉(zhuǎn)換為ArrayList的過(guò)程是否應(yīng)在fetchData中進(jìn)行?
          在樓主的上一篇博文的TestBean中的getDataModel方法里重寫(xiě)的fetchData中的兩個(gè)參數(shù)(int startRow, int pageSize)在什么地方傳進(jìn)去?我如何告知datascroller數(shù)據(jù)集中共有多少條記錄?在查詢的時(shí)候我如何知道當(dāng)前是第幾頁(yè)?
          還煩請(qǐng)樓主多我指教!
          請(qǐng)教樓主:
          <rich:datascroller for="carList" id="dc1"
          style="width:483px" page="#{user.scrollerPage}"/>
          分頁(yè)控件中的page綁定的代碼可以貼出來(lái)么?
          小弟剛接觸java不久,最近一個(gè)項(xiàng)目要使用到JSF,尤其dataTable這個(gè),有些問(wèn)題不太明白,希望能請(qǐng)教樓主!
          主站蜘蛛池模板: 澄城县| 偃师市| 吐鲁番市| 平顶山市| 清苑县| 夹江县| 财经| 秦皇岛市| 绥化市| 红安县| 浦城县| 皋兰县| 舟曲县| 乌鲁木齐县| 化州市| 光山县| 华安县| 绥芬河市| 唐海县| 康马县| 洛川县| 无锡市| 安康市| 呼伦贝尔市| 宣武区| 平舆县| 昌江| 霍林郭勒市| 安顺市| 五寨县| 日照市| 边坝县| 开鲁县| 浠水县| 茂名市| 桂东县| 正阳县| 孟津县| 绥中县| 灵丘县| 乳源|