当前位置: 首页 > 知识库问答 >
问题:

containsKey()总是返回true[closed]

罗学林
2023-03-14

我想比较两个自创建的对象,但是containsKey()总是返回true

映射结构为:

Map<MethodReport,List<MethodReport>> calledMap
public class MethodReport {
    private String nombre;
    private String paquete;
    private int LOC;
    private String resultado;
    private int lineaClase;
    private String tipo;

    public MethodReport() {

    }

    public MethodReport(String nombre, String paquete, int lOC, String resultado, int lineaClase, String tipo) {
        this.nombre = nombre;
        this.paquete = paquete;
        LOC = lOC;
        this.resultado = resultado;
        this.lineaClase = lineaClase;
        this.tipo = tipo;
    }

    public MethodReport(String nombre) {
        nombre = nombre;
    }

    public String getNombre() {
        return nombre;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == this) {
            return true;
        }
        if (!(obj instanceof MethodReport)) {
            return false;
        }
        MethodReport m = (MethodReport) obj;
        return this.nombre.equals(m.getNombre());
    }

    @Override
    public int hashCode() {
        return Objects.hash(this.nombre);
    }

    @Override
    public String toString() {
        return this.paquete+this.nombre;
    }
}

共有1个答案

夏侯航
2023-03-14

在单参数构造函数中将nombre赋值给同名字段变量,而不是赋值给其本身

this.nombre = nombre;
 类似资料:
  • 我正在解析一个文件,其中有城市名和到其他城市的距离,格式如下: 我认为问题在于,当我分割字符串时,它创建了不同的对象,并且由于某种原因,string.equals和/或hashcode()给出了不同的结果。因此,map.get(key)返回空值。但我不知道如何解决这个问题。 }

  • Google Guava有一个谓词,它总是返回。Java8的有类似的东西吗?我知道我可以使用,但我需要一些预先制作的东西,类似于。

  • 问题内容: 据我所知,使用或实例化对象分别返回或的新实例。具有 新标识 的新实例对象。 在我实际测试它之前,这对我来说是很清楚的,我注意到它实际上返回了而不是预期的: 如预期的那样,分别使用和创建对象时,也会表现出这种行为: 我可以在状态文档中找到唯一相关的信息: […]例如,return和return 。 如果未提供任何参数,则构造函数将创建一个新的空元组。 可以说,这不足以回答我的问题。 那么

  • 我对递归函数有问题。它总是返回 false,即使它是真的。 我有以下带有名称的数组: 下面是我的函数: 然后当我使用数组中的名称时,它仍然返回 false :

  • 我刚刚开始学习Javascript,现在只是学习一些基本的东西。但问题是我真的不明白如果这个switch语句如何返回 null null 还有人看到问题了吗? 如有任何帮助,我们将不胜感激!

  • 问题内容: 结果始终为1: 我在phpMyAdmin中运行了$ sql查询,它返回3,所以查询不是问题。$ vote_total全局初始化为0,因此1来自某个地方。我还需要提供什么其他信息来帮助我? 谢谢,瑞安 问题答案: 返回选定的行数,而不是特定行的字段。使用来获取您与您的查询选择的行: 您还可以用来获取一行并获取特定字段: 这将获取第一行(从零开始)并返回第一字段(从零开始)。