咖啡伴侶

          呆在上海
          posts - 163, comments - 156, trackbacks - 0, articles - 2

          用XMLEncode輸出時候,有BigDecimal有時候不好使。

          Posted on 2008-03-28 10:07 oathleo 閱讀(544) 評論(0)  編輯  收藏 所屬分類: Java

          用XMLEncode輸出時候,如果有BigDecimal有時候不好使。
          原因是:如果類的變量在定義時候有初始值,而不是null,就必須要重載DefaultPersistenceDelegate的mutatesTo方法。
          關于這個說明,在網上這里可以看到:
          http://forum.java.sun.com/thread.jspa?threadID=631299&messageID=3642493

          有興趣的可以看看:
          //setup big decimal delegate.
          ????????? DefaultPersistenceDelegate bigDecimalDelegate = new DefaultPersistenceDelegate() {
          ????????????? protected Expression instantiate(Object oldInstance, Encoder out) {
          ????????????????? BigDecimal decimal = (BigDecimal) oldInstance;
          ????????????????? return new Expression(oldInstance, oldInstance.getClass(), "new", new Object[] {decimal.toString()});
          ????????????? }
          ????????????? //must override this method.
          ????????????? // see http://forum.java.sun.com/thread.jspa?threadID=631299&messageID=3642493
          ????????????? protected boolean mutatesTo(Object oldInstance, Object newInstance) {
          ????????????????? return oldInstance.equals(newInstance);
          ????????????? }
          ????????????? //--- Joshua
          ????????? };

          網上的牛人說:

          This works for BigDecimal properties that aren't initialized, i.e. null. But if you initialize the property, then this won't work unless you override mutatesTo in addition to instantiate mentioned above:

          protected boolean mutatesTo(Object oldInstance, Object newInstance) {
          return oldInstance.equals(newInstance);
          }

          主站蜘蛛池模板: 亳州市| 新兴县| 万宁市| 阳新县| 周宁县| 崇州市| 阜南县| 茌平县| 剑河县| 南漳县| 宝丰县| 通城县| 兴安盟| 安平县| 安宁市| 老河口市| 枞阳县| 东港市| 田林县| 哈尔滨市| 金阳县| 厦门市| 佛教| 锦屏县| 高平市| 长寿区| 三门县| 天柱县| 方山县| 尉氏县| 木里| 固安县| 南通市| 清流县| 湖口县| 孙吴县| 商河县| 杭锦旗| 云林县| 双流县| 河南省|