[英]Handling properties by YAML file
我学习了如何在测试项目中处理写在 yaml 文件中的属性。
我知道这与处理 JSON 个文件非常相似。
我了解到我必须编写一个类/对象组合 model 来镜像 yaml 配置。
我做到了,我不得不说一切都很好,但突然间我遇到了困难。
我的意思是,如果我向 yaml 添加一个新属性,在组合 model 中不会有镜像 object 怎么办?
我想编写一个代码,在我将它添加到 yaml 之后读取该属性,但我不知道该怎么做。
有人有什么建议吗?
如果您正在寻找命名属性,那您就不走运了。 您在 class 中需要它们。但是,您可以改用一些更通用的 collections,并按名称获取属性,假设它们是简单的键/值。
例如,如果您有这样的 YAML:
size: 16
crust: "wheat"
toppings:
"cheese": "normal"
"pepperoni": "normal"
"onion": "normal"
"mushroom": "extra"
你可以有一组固定的配料,如下所示:
public class Pizza
{
private int size;
private String crust;
private Toppings toppings;
}
public class Toppings
{
private String cheese;
private String pepperoni;
private String onion;
private String mushroom;
}
但实际上,我们都知道每个人都希望他们的比萨饼上有不同的东西。 如果您只为每个人提供相同的比萨饼,那么您将 go 倒闭。 所以,你需要一些更灵活的浇头。 有时他们会在那里,有时他们不会。 所以,你必须使用更灵活的数据结构:
public class Pizza
{
private int size;
private String crust;
private Map<String, String> toppings;
}
大多数序列化程序(例如 Jackson)都知道如何处理 collections ,例如Map
或List
。 他们将允许您添加任何您想要的属性,只要它符合集合的形式/类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.