sérialisation de liste kryo

J’essaie de sérialiser une liste de la liste de certains objects (d’une classe personnalisée: Liste>), en utilisant Kryo.

list2D; // List<List> which is already produced. Kryo k1 = new Kryo(); Output output = new Output(new FileOutputStream("filename.ser")); k1.writeObject(output, (List<List>) list2D); output.close(); 

Jusqu’à présent, aucun problème, il écrit la liste sans erreurs. Mais quand j’essaie de le lire:

 Kryo k2 = new Kryo(); Input listRead = new Input(new FileInputStream("filename.ser")); List<List> my2DList = (List<List>) k2.readObject(listRead, List.class); 

Je reçois cette erreur:

 Exception in thread "main" com.esotericsoftware.kryo.KryoException: Class cannot be created (missing no-arg constructor): java.util.List 

Comment puis-je résoudre ce problème?

Vous ne pouvez pas utiliser List.class lors de la lecture d’objects, car List est une interface.

 k2.readObject(listRead, ArrayList.class); 

Selon votre erreur, vous voudrez peut-être append un constructeur sans argument à votre classe:

  public class MyClass { public MyClass() { // no-arg constructor } //Rest of your class.. }