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

溫馨提示×

溫馨提示×

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

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

如何正確的使用Kryo框架

發布時間:2020-12-08 16:06:16 來源:億速云 閱讀:183 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關如何正確的使用Kryo框架,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

使用方法如下:

</pre><pre name="code" class="java"> private static void testString () { 
  Kryo kryo=new Kryo(); 
  String w_str1="簡體中文,繁體中文,English"; 
  //把w_str1對象序列化 
  Output output=new Output(1024); 
  kryo.writeObject(output, w_str1); 
  output.flush(); 
  output.close(); 
  byte[] w_ret= output.toBytes(); //獲得byte數據,這些數據可用作儲存、網絡傳輸等... 
  //還原 
  Input input=new Input(w_ret); 
  input.close(); 
  String w_str2=kryo.readObject(input, String.class); 
  System.out.println(w_str2); 
 } 

   再來一個HashMap類的序列化跟還原,因為Kryo自帶了很多java基本類的Serializer,所以盡管不知道Serializer,Kryo也自動匹配:

public static void testHashMap() throws NoSuchAlgorithmException{ 
  Kryo kryo=new Kryo();    
  HashMap h=new HashMap(); 
  h.put("k1", "v1"); 
  h.put("k2", "v2"); 
  Output output=new Output(1, 1024);  
  kryo.writeObject(output, h); 
  output.close(); 
  byte[] data=output.toBytes(); 
  Input i=new Input(data); 
  i.close(); 
  HashMap h3= (HashMap)kryo.readObject(i, HashMap.class); 
  System.out.println(h3.get("k2"));   
 } 

   那么,我自定義的Bean又應該如何處理呢?下面給出例子:
1、先定義Bean TestBean:

public static class TestBean implements Serializable{ 
  private int[] intArray; 
  private HashMap<String,String> hashMapVal; 
  private String strVal; 
  public int[] getIntArray () { 
   return intArray; 
  } 
  public void setIntArray (int[] intArray) { 
   this.intArray = intArray; 
  } 
  public HashMap<String, String> getHashMapVal () { 
   return hashMapVal; 
  } 
  public void setHashMapVal (HashMap<String, String> hashMapVal) { 
   this.hashMapVal = hashMapVal; 
  } 
  public String getStrVal () { 
   return strVal; 
  } 
  public void setStrVal (String strVal) { 
   this.strVal = strVal; 
  } 
 } 

    2、因為這是自定義的Bean,Kryo在序列化前先要對TestBean進行注冊:kryo.register(TestBean.class,new BeanSerializer(kryo, TestBean.class)); ,具體例子如下:

public static void testBean() throws NoSuchAlgorithmException{ 
  Kryo kryo=new Kryo(); 
  kryo.register(TestBean.class,new BeanSerializer(kryo, TestBean.class)); 
  TestBean tb1=new TestBean(); 
  tb1.setStrVal("test1"); 
  tb1.setHashMapVal(new HashMap<String,String>()); 
  tb1.getHashMapVal().put("k1", "v1"); 
  tb1.getHashMapVal().put("k2", "v2"); 
  int[] ints=new int[3]; 
  ints[0]=1; 
  ints[1]=2; 
  ints[2]=3; 
  tb1.setIntArray(ints); 
  Output output=new Output(1, 1024);  
  kryo.writeObject(output, tb1); 
  output.close(); 
  byte[] data=output.toBytes(); 

   
Input i=new Input(data); 
 i.close(); 
 TestBean tb2= (TestBean)kryo.readObject(i, TestBean.class); 
 System.out.println(tb2.strVal); 
 System.out.println(tb2.hashMapVal.get("k1")); 
 System.out.println(tb2.intArray[2]);     
} 

以上就是如何正確的使用Kryo框架,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

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

AI

余江县| 广南县| 尉犁县| 江城| 贵溪市| 乡宁县| 赤峰市| 包头市| 安吉县| 平遥县| 银川市| 杭州市| 博乐市| 晋江市| 栾城县| 蓬莱市| 墨竹工卡县| 通城县| 精河县| 金华市| 富顺县| 巴里| 丹阳市| 赣州市| 山阳县| 棋牌| 团风县| 丰顺县| 施甸县| 鄂温| 廊坊市| 商洛市| 龙山县| 修水县| 西城区| 和林格尔县| 萝北县| 金阳县| 集安市| 武城县| 宝鸡市|