我对从yaml反序列化的对象有问题。我做了一组类来模拟yaml文件,所以当我读取文件时,我可以将内容映射到一个对象。现在,问题是我有相同的对象,一个在List中,一个在out,但对于运行时环境,它们彼此不同,裸体等于而不是属性比较。这里有代码的片段。非常感谢。
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。
这里有控制台打印
我修复了覆盖equals方法,然后contains方法再次起作用。