1

因此,我正在为要继承的所有模型对象编写此实用程序类,以便每当我调用 saveToFile(filename) 时,它都会将该对象保存为 yaml 格式。To String 只是以 yaml 格式输出文件。我真正想做的是用文件中的属性初始化对象的所有属性,但我不想事先知道它是什么类型的对象。

我想要一种类似的方法

public void loadFromFile(String filename){
    try {
        InputStream input = new FileInputStream(new File(filename));
        Yaml y = new Yaml();
        this = y.load(input);
    } catch (IOException e) {
        System.out.println(e);
    }
}

这很好用,除了您不能将对象分配给“this”这一事实。

4

1 回答 1

2

你必须投:

YourObject object = (YourObject) y.load(input);

另外,不要给this. 相反,您应该在外部加载对象并使用类似的东西BeanUtils.copyProperties(object, yamlObject)

还要看看yamlbeans

顺便说一句,为了制作实用方法,您的演员表不会那样工作。您最好将Class<T>参数传递给该方法,并让它具有返回类型T。用来clazz.cast(..)做演员表。

于 2010-12-07T17:04:41.727 回答