Я пытаюсь использовать библиотеку flexjson
. Но в моем объекте я должен использовать: com.google.api.client.util.DateTime
, у которых нет конструктора параметров. Я всегда получаю NoSuchMethodException
с сообщением: Flexjson will instantiate any protected, private, or public no-arg constructor.
У меня есть источники и пытается что-то сделать с этим, вот код:Сериализация объектов с помощью flexjson
constructor = clazz.getDeclaredConstructor();
constructor.setAccessible(true);
return constructor.newInstance();
Исключение бросают в clazz.getDeclaredConstructor()
из-за пустого конструктора не хватает. Каков наилучший подход к поиску конструктора, скажем, подписи:
DateTime(long timestamp)
?
У кого-нибудь сталкиваются с этой проблемой в этой библиотеке? Возможно, вы можете предложить использовать другой. Я использую его для сериализации объектов, генерируемых Google Cloud Endpoints
. Может быть, я могу сделать это с другим подходом?
лучший подход заключается в пустой конструктор. ваша метка времени будет установлена позже, если она присутствует в объекте json. для этого вы можете рассмотреть возможность расширения DateTime. – njzk2
njzk2, я не могу расширять 'DateTime', потому что он находится в автогенерированном файле, и он генерируется из объекта' java.util.Date' на бэкэнд приложения. – sennin