【发布时间】:2023-03-26 02:14:01
【问题描述】:
我对从 yaml 反序列化的对象有疑问。我做了一组类来对 yaml 文件进行建模,因此当我读取文件时,我可以将内容映射到一个对象中。现在,问题是我有相同的对象,一个在列表中,一个在列表中,但是对于运行时环境,它们彼此不同,裸相等而不是属性比较。这是代码的片段。非常感谢。
public String changeKey(String richiedente, String apikey) throws IOException {
ObjectMapper mapper= new ObjectMapper(new YAMLFactory());
Yaml yaml = mapper.readValue(new File(domainYaml), new TypeReference<Yaml>() {});
String newApiKey = null;
YamlSistRichiedenti sistemaRichiedenteOld = new YamlSistRichiedenti(richiedente, apikey);
System.out.println(yaml.server.sistemiRichiedenti.contains(sistemaRichiedenteOld));
System.out.println(yaml.server.sistemiRichiedenti.get(0).equals(sistemaRichiedenteOld));
System.out.println(yaml.server.sistemiRichiedenti.get(0).apikey.equals(sistemaRichiedenteOld.apikey));
System.out.println(yaml.server.sistemiRichiedenti.get(0).richiedente.equals(sistemaRichiedenteOld.richiedente));
这应该在所有 4 个打印示例中都打印为 true,但等于并包含 print false。
这里是控制台打印
【问题讨论】:
-
欢迎来到 SO!事实上,这个问题不能让我们帮助您解决问题。它缺少一个清晰的问题陈述——你展示了一些代码,但没有告诉我们它做了什么(而不是它应该做什么)。我也不太理解您文本中的问题陈述。然后,
Yaml是来自 SnakeYaml 的主类,但您似乎已经创建了一个具有该名称的自己的类,这令人困惑,您应该更改它,以便更清楚您在做什么。最后,您应该创建一个MCVE,以便我们可以重现您正在做的事情。