我想知道是否可以让snakeyaml将yaml文档加载到javabean中,并且如果无法找到文档中条目的匹配项作为javabean属性,它将把它放置到javabean中的通用映射中。 ..
例如
public class Person {
private String firstName;
private String lastName;
private Map<String, Object> anythingElse;
//Getters and setters...
}
如果我加载的文档看起来像:
firstName: joe
lastName: smith
age: 30
由于age不是bean中的属性,因此我想将{age,30}添加到anyelse映射中。
可能?
谢谢。
最佳答案
不,这不可能。
根据我的经验和尝试,它不起作用。如果您想将文件加载到对象中,则该对象类中的所有属性都必须具有getter和setter方法(即,该类必须是JavaBean,请参见Wikipedia)。
我使用了您的Person类(有关适当的JavaBeanClass,请参见Wiki页面),其代码为:http://codepaste.net/dbtzqb
我的错误消息是:“第3行,第4列:在类:Person上找不到属性'age'”,因此证明此简单程序不能具有“意外”属性。这是我快速简便的结论。我没有进行广泛尝试,因此可能会出现,但我不知道这种方式(您必须绕过读取方法和JavaBean)。我使用过YamlBeans(https://code.google.com/p/yamlbeans/),所以有些不同,但是我发现它更容易且可以工作;]
希望能有所帮助!
编辑
很抱歉撞到这个,迟到总比没有好!在发布答案之前,我没有看到该发布日期。但是希望它可以帮助其他寻求帮助的人:3
关于java - Snakeyaml加载到JavaBean,并且如果未在 map 上找到该属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11691659/