Прежде всего, с Рождеством!JYAML: Сериализация/десериализация вложенных/внутренних классов
Теперь на мой вопрос: Предположим, у меня есть класс Outer
с некоторым внутренним классом Inner. Как поле в Outer
, у меня есть List<Inner>
, который затем я хочу сбросить в файл YAML. Я делаю это так:
Outer o = new Outer();
o.innerList = new ArrayList<Inner>();
o.innerList.add(new o.Inner());
...
Yaml.dump(o, new File("test.yml");
Это дает мне исключение: Exception in thread "main" org.ho.yaml.exception.ObjectCreationException: Error near line 0: Can't create object of type class game.Outer$Inner using default constructor.
Я попытался обеспечивая пользовательский конструктор и изменение уровня доступа общественности, никакой помощи. Есть идеи?
Я пытаюсь сериализовать, чтобы посмотреть, как будет выглядеть вывод, чтобы создать мои собственные документы для синтаксического анализа. Нет, Inner не является статичным. Я посмотрю на SnakeYAML. –
Я боюсь, что это невозможно, если внутренний класс не является статичным. Невозможно представить ссылку на родителя в документе YAML. – Andrey
Сначала вы можете попробовать сериализовать XML, чтобы увидеть, видно ли это. Если возможно создать XML, можно создать YAML. – Andrey