2013-04-03 9 views
1

я получаю эту ошибку при попытке «десериализации» объект:сериализации/десериализации объектов в XML с (XStream)

Cannot construct MyClass as it does not have a no-args constructor. 

Глядя на документы, это означает, что XStream не работает в enhanced mode?

Однако в той же JVM и используя тот же класс Google Gson библиотека может сериализации и десериализации объектов без проблем:

MyClass c; 
c = (MyClass) new Gson().fromJson(json, MyClass.class); 

Так почему XStream не может сделать, чтобы XML, что Gson может сделать для JSON? Легко ли это исправлять в коде XStream или это ограничение, с которым нелегко обойти?

Мне нужно иметь возможность сериализовать/десериализовать объекты, даже те, которые имеют конструктор no-args, используя эту библиотеку XStream.

+0

Возможный дубликат http://stackoverflow.com/questions/9621372/xstream-no-args-constructor-error –

ответ

0

XStream требует, чтобы ваш класс имел конструктор без аргументов.

Эти конструкторы не обязательно должны быть публичными, но они должны существовать.

+0

Я знаю, однако я хочу, чтобы моя библиотека могла обрабатывать классы без no-args, однако это похоже, что диспетчер безопасности в SDK GAE не допустит такого (где Google Gson разрешен, а другой нет такой привилегии) – 2013-04-05 03:21:02