gpt4 book ai didi

java - 确定对象类型然后从 Snake yaml.load(InputStream) 转换对象的方法

转载 作者:行者123 更新时间:2023-11-30 05:08:07 24 4
gpt4 key购买 nike

因此,我正在为所有要继承的模型对象编写此实用程序类,以便每当我调用 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”之外。

最佳答案

您必须转换:

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

另外,不要对 this 进行赋值。相反,您应该从外部加载对象并使用类似 BeanUtils.copyProperties(object, yamlObject) 的内容。

另请查看yamlbeans .

顺便说一句,为了创建一个实用方法,您的转换将不会像那样工作。你最好传个Class<T>该方法的参数,并让它具有返回类型 T 。使用clazz.cast(..)进行 Actor 阵容。

关于java - 确定对象类型然后从 Snake yaml.load(InputStream) 转换对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4379328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com