答案 0 :(得分:3)
我也想知道这一点,并在文档中找到以下内容:
注意是否要将对象限制为标准Java对象(如List) 或者您需要to use SafeConstructor。
Yaml yaml = new Yaml(new SafeConstructor());
上面引用的链接转到一个测试用例,其中YAML文档包含对Java对象的引用。如果没有SafeConstructor
,yaml.load
将调用对象的无参构造函数,这对于类路径中的某些类可能是一件坏事。使用SafeConstructor
时,只会调用SafeConstructor
nested classes(Java code)。
答案 1 :(得分:0)
SnakeYAML允许使用任何类加载器。创建类的实例时,它会调用构造函数。它将在那里运行任何代码。如果你自己加载课程 - 不用担心。