2016-10-05 4 views
1

Kryoシリアライザを使用して特定の種類のリストを書き込もうとしていますが、読み書きしようとするとエラーが発生します。私が記述しようとしていますリストは私は何のArrayListまたはリストの他のタイプkryoシリアライザを使用して特定の種類のリストを書き込む方法

コード

Class FakeRegsitrator implements KryoRegistrator{ 

    @Override 
    public void registerClasses(Kryo kryo) { 
     CollectionSerializer listSerializer = new CollectionSerializer(); 
     listSerializer.setElementClass(A.class, kryo.getSerializer(A.class)); 
     listSerializer.setElementsCanBeNull(false); 

     kryo.register(A.class, new Serializer<A>(true, true) { 
     public void write(Kryo kryo, Output output, A a) { 
      output.writeLong(a.getFieldA) 
      output.WriteString(a.getFieldB) 
     } 
     public A read(Kryo kryo, Input input, Class type) { 
      return new A(input.readLong(), input.readString()) 
     } 
    } 
} 

かもしれタイプList<A>であるKryoRegistrator

用のApacheのスパークによって提供されるソースを使用していますここに行方不明?

kryo.register(ArrayList.class); 

in read method use 
kryo.readObject(input, ArrayList.class); 

in write method use 
kryo.writeObject(output, entry.getArchivePortions()); 

答えて

0

は私がArraylist.class

コードを登録することで、それが働いて得ることができました

関連する問題