java - Yaml文件读取对象歧义

标签 java yaml equals contains

我在从 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。

这里是控制台打印

Here there is the console printing

最佳答案

我修复了重写 equals 方法,然后 contains 方法也再次开始工作。

关于java - Yaml文件读取对象歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55099255/

相关文章:

java - 在 Restful Web 服务中获取托管 Bean 引用

java - 为什么静态内部类单例线程安全

equals - 这个 HashSet 测试示例可能吗?

java-如何计算段落之间的空格并从总行数中减去它们?

java - 如何在 spring-boot 配置中将 yml 映射绑定(bind)到 Java 映射?

yaml - R Markdown 文档中 YAML 列表的处理不一致(与加载 LaTeX 包有关)

azure - 如何在 Azure DevOps yaml 管道中设置环境状态

java - 使用 compareTo 实现 equals 方法

java - 为什么 Java 使用 'equals' 而不是 '==' 来检查对象在 Map 中的存在?

java - 使用 IBM Java 通过 SSL 连接到 Oracle DB