Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JYAML:序列化/反序列化嵌套/内部类_Java_Yaml_Inner Classes_Jyaml - Fatal编程技术网

Java JYAML:序列化/反序列化嵌套/内部类

Java JYAML:序列化/反序列化嵌套/内部类,java,yaml,inner-classes,jyaml,Java,Yaml,Inner Classes,Jyaml,首先,祝大家圣诞快乐 现在我的问题是: 假设我有一个类外部和一些内部类。作为外部中的一个字段,我有一个列表,然后我想将其转储到YAML文件中。我是这样做的: Outer o = new Outer(); o.innerList = new ArrayList<Inner>(); o.innerList.add(new o.Inner()); ... Yaml.dump(o, new File("test.yml"); Outer o=新的Outer(); o、 innerList=

首先,祝大家圣诞快乐

现在我的问题是: 假设我有一个类
外部
和一些内部类。作为
外部
中的一个字段,我有一个
列表
,然后我想将其转储到YAML文件中。我是这样做的:

Outer o = new Outer();
o.innerList = new ArrayList<Inner>();
o.innerList.add(new o.Inner());
...
Yaml.dump(o, new File("test.yml");
Outer o=新的Outer();
o、 innerList=新的ArrayList();
o、 添加(新的o.Inner());
...
dump(o,新文件(“test.yml”);
这给了我一个异常:
线程“main”org.ho.yaml.exception.ObjectCreationException中的异常:第0行附近的错误:无法使用默认构造函数创建类game.Outer$Inner类型的对象。


我尝试提供一个自定义构造函数,并将访问级别更改为public,但没有任何帮助。有什么想法吗?

首先要检查YAML是否支持内部类序列化。

SnakeYAML有很多内部类的示例。 YAML文档(test.yml)看起来怎么样?
Inner是静态的内部类吗?

我正在尝试序列化以查看输出的外观,以便创建自己的文档进行解析。不,Inner不是静态的。我将查看SnakeYAML。如果Inner类不是静态的,恐怕不可能。在YAML文档中无法表示指向其父级的链接。您可能无法我想先序列化为XML,看看它是否可见。如果可以创建XML,就可以创建YAML。我尝试了SnakeYAML,如果我向类中添加公共修饰符,它似乎可以工作。如果我向类中添加静态修饰符,它甚至可以工作。