2009-12-24 87 views
0

首先,祝大家圣诞快乐!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.

我尝试提供自定义构造函数和改变访问级别大众,没有任何帮助。有任何想法吗?

回答

0

SnakeYAML有很多内部类的例子。 YAML文档(test.yml)的外观如何? 内在是一个静态的内部类吗?

+0

我想序列化看看如何输出看起来像,为了创建我自己的解析文档。不,内在不是静态的。我会看看SnakeYAML。 –

+0

如果内部类不是静态的,恐怕是不可能的。没有办法在YAML文档中表示与其父代的链接。 – Andrey

+0

您可能会尝试先序列化为XML以查看它是否可见。 如果可以创建XML,则可以创建YAML。 – Andrey

0

首先检查YAML是否支持Inner类的序列化。