91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.net和java中不支持字典的序列化的變通方法

發布時間:2020-07-14 05:38:32 來源:網絡 閱讀:1008 作者:shaofeirong 欄目:編程語言
1.java代碼
為了解決Map不支持序列化的問題,
特意定義了一個數組(里面用到了List來做轉換)
迎合序列化的需要

        @Expose
        @XStreamAlias("TheFroms")
        @SerializedName("TheFroms")
        public OrderFromInfo[] theFroms;

        @Expose
        @XStreamAlias("Froms")
        @SerializedName("Froms")
        public Map<Integer, OrderFromInfo> Froms;

        private Map<Integer, OrderFromInfo> froms = new HashMap<Integer, OrderFromInfo>();

        /**
         * new一個List來做Map數組的轉換
         *Author:shaorongfei
         * @return new
         */

        public OrderFromInfo[] getTheFroms() {
                List<OrderFromInfo> theItems = new ArrayList<OrderFromInfo>();
                if (froms != null) {
                        for (OrderFromInfo orderFromInfo : froms.values()) {
                                theItems.add(orderFromInfo);
                        }
                }
                final int size = theItems.size();
                theFroms = (OrderFromInfo[]) theItems.toArray(new OrderFromInfo[size]);
                return theFroms;
        }

        /**
         * 迎合序列化需要,數組等同Froms屬性。
         * Author:shaorongfei
         * @param theFroms 傳入的OrderFromInfo[]數組
         */

        public void setTheFroms(OrderFromInfo[] theFroms) {
                froms = new HashMap<Integer, OrderFromInfo>();
                for (OrderFromInfo item : theFroms) {
                        froms.put(item.getRftype(), item);
                }
        }

        public Map<Integer, OrderFromInfo> getFroms() {
                return froms;
        }

        public void setFroms(Map<Integer, OrderFromInfo> froms) {
                this.froms = froms;

        }

2.C#代碼

.net和java中不支持字典的序列化的變通方法    private Dictionary<int, OrderFromInfo> froms = new Dictionary<int, OrderFromInfo>();
.net和java中不支持字典的序列化的變通方法
    /// <summary>
.net和java中不支持字典的序列化的變通方法    /// 來源信息
.net和java中不支持字典的序列化的變通方法    /// </summary>
.net和java中不支持字典的序列化的變通方法    [XmlIgnore]
.net和java中不支持字典的序列化的變通方法    public Dictionary<int, OrderFromInfo> Froms
.net和java中不支持字典的序列化的變通方法    {
.net和java中不支持字典的序列化的變通方法      get { return froms; }
.net和java中不支持字典的序列化的變通方法      set { froms = value; }
.net和java中不支持字典的序列化的變通方法    }
.net和java中不支持字典的序列化的變通方法
    /// <summary>
.net和java中不支持字典的序列化的變通方法    /// 迎合序列化需要,等同Coupons屬性
.net和java中不支持字典的序列化的變通方法    /// </summary>
.net和java中不支持字典的序列化的變通方法    public OrderFromInfo[] TheFroms
.net和java中不支持字典的序列化的變通方法    {
.net和java中不支持字典的序列化的變通方法      get
.net和java中不支持字典的序列化的變通方法      {
.net和java中不支持字典的序列化的變通方法        List<OrderFromInfo> theItemss = new List<OrderFromInfo>();
.net和java中不支持字典的序列化的變通方法        if ( froms != null )
.net和java中不支持字典的序列化的變通方法        {
.net和java中不支持字典的序列化的變通方法          foreach ( KeyValuePair<int, OrderFromInfo> kvp in froms )
.net和java中不支持字典的序列化的變通方法          {
.net和java中不支持字典的序列化的變通方法            theItemss.Add( kvp.Value );
.net和java中不支持字典的序列化的變通方法          }
.net和java中不支持字典的序列化的變通方法        }
.net和java中不支持字典的序列化的變通方法
        return theItemss.ToArray();
.net和java中不支持字典的序列化的變通方法      }
.net和java中不支持字典的序列化的變通方法      set
.net和java中不支持字典的序列化的變通方法      {
.net和java中不支持字典的序列化的變通方法        froms = new Dictionary<int, OrderFromInfo>();
.net和java中不支持字典的序列化的變通方法        foreach ( OrderFromInfo item in value )
.net和java中不支持字典的序列化的變通方法        {
.net和java中不支持字典的序列化的變通方法          froms.Add( item.Rftype, item );
.net和java中不支持字典的序列化的變通方法        }
.net和java中不支持字典的序列化的變通方法      }
.net和java中不支持字典的序列化的變通方法    }

兩者的思想是一樣的,都是為了解決字典(C#)或者Map(java)
對象序列化后取不到值所做的變通方法。

java中的get,set封裝javabean比較好理解,C#的set{froms=value}可以這樣來理解,如下:

通俗來講..get是獲取值 set是設置值

比如這句:get { return this._username; }
如果調用這個get方法 就能獲得方法return的 this._username(返回的值)
調用方法:Console.Write(對象.UserName);(輸出該屬性的值)

比如這句:set { this._username = value; }
如果調用這個set方法 就可以重新設置username的值 value就是你新設置的值
調用方法:對象.UserName="新值";(為該屬性附新值)

個人理解:
1.在封裝數據庫字段的時候非常有用,相信大家都這么用。
2.你可以吧UserName當成一個這個類的一個屬性,這個屬性由字段_username的值確定,也可能不是_username,而是經過_username變化的。你可以在GET、SET中作相應的處理。比如這樣:

public string UserName
{
get {
if(string.IsNullOrEmpty(_username))
return ERRORCODE;
return this._username;
}
set {
if(string.IsNullOrEmpty(_username))
this._username = defaultusername;
this._username = value;
}
}



以上需要的朋友可以借此來試一試,在做Xml序列化時項目里經常會用到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

华容县| 云林县| 吕梁市| 琼结县| 深泽县| 宣汉县| 商丘市| 乌兰察布市| 旬邑县| 界首市| 伊宁市| 荆州市| 大庆市| 西华县| 增城市| 南溪县| 叶城县| 南通市| 万源市| 蓬安县| 镇康县| 定西市| 二手房| 视频| 和政县| 武夷山市| 五华县| 舟山市| 阿城市| 抚顺县| 谢通门县| 正蓝旗| 宜兰市| 遵义县| 微山县| 门头沟区| 宜宾县| 托克托县| 惠水县| 邯郸县| 博兴县|