【问题标题】:Why does function equals return error in Java [duplicate]为什么函数等于在Java中返回错误[重复]
【发布时间】:2020-04-10 09:56:49
【问题描述】:

我在该类中有一个 java 类 Objekt 我编写了一个函数来检查对象来自其他类的对象的序列号,并且我不断收到 .equals 错误。我想知道是不是因为我写了 String 函数并且序列号(Evidenca)是 int 或者我写错了。所以欢迎任何想法。

boolean obstaja = false;
    for(PoslovniProstor pp : this.PoslovniProstori)
    {
        if(pp.getEvidenca().equals(poslovniProstor.getEvidenca()))
        {
            obstaja = true;
            break;
        }
    }

这个颜色 .equals 是红色的,记住我从中获取对象的类是 PoslovniProstor,我在这个类 Objekt 中创建了一个 ArrayList 并被称为 PoslovniProstori

public ArrayList<PoslovniProstor> getPoslovniProstori(){
    return this.PoslovniProstori;
}

所以是的,欢迎任何帮助。 :D

【问题讨论】:

  • 那么getEvidenca()返回的值的类型是什么?可能是一些原始类型。基元使用==进行比较,对象使用equals()进行比较。
  • 你写了“序列号(Evidenca)是 int”。 int没有equals 方法。请改用==
  • 时不时地提醒我们 Java 的某些方面是多么奇怪和不一致!

标签: java object


【解决方案1】:

equals 方法和== 运算符有不同的用例。简而言之,equals 用于检查值是否相等,== 是否用于检查相同的引用。 在您的情况下,正如您所说,Evidenca 是 int,那么,要将一个 int 与另一个 int 进行比较,请使用 == 运算符。

更多详情可以查看本帖How do I compare strings in Java?

【讨论】:

    【解决方案2】:

    由于 int 是原始类型,因此必须使用 == 而不是 .equals() 进行比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多