eclipse 如何在原始类型(int)上修复这个等号?

omqzjyyz  于 2022-12-12  发布在  Eclipse
关注(0)|答案(4)|浏览(131)

这是我的库应用程序代码

package com.accenture.totalbeginner;

public class Person {
  private String name;
  private int maximumbooks;

  public Person() {
    name = "unknown name";
    maximumbooks = 3;
  }

  public    String getName() {
    return name;
  }

  public void setName(String anyname)   {
    name = anyname;
  }

  public int getMaximumbooks() {
    return maximumbooks;
  }

  public void setMaximumbooks(int maximumbooks) {
    this.maximumbooks = maximumbooks;
  }

  public String toString() {
    return this.getName() + " (" + this.getMaximumbooks()  + " books)";
  }

  public boolean equals(Person p1) {
    if(!this.getName().equals(p1.getName()))    {
        return false;
    }

    if(!this.getMaximumbooks().equals(p1.getMaximumbooks()))    {
        return false;
    }

    return true;
  }
}

(!this.getMaximumbooks().equals(p1.getMaximumbooks()))

这表示无法在基本型别(int)上叫用.equals
我知道这意味着什么,但我已经尝试了一切,我不知道如何纠正它。
如果你需要其他类的代码,请告诉我。

vm0i2vca

vm0i2vca1#

equals()用于Object s(StringInteger等)
对于intbooleanchar基元,必须使用==

wbgh16ku

wbgh16ku2#

getMaximumbooks()返回一个基元类型int,而不是Object。您必须将其与==!=(而不是equals)进行比较

if (this.getMaximumbooks() != p1.getMaximumbooks())
{
    return false;
}
return true;
kxeu7u2r

kxeu7u2r3#

如果要比较原语,只需使用==
此外,在处理类时尽量不要使用getters,因为您已经可以访问所有字段(不管是否为private)。

public boolean equals(Person p1)
{
    return this.maximumBooks == p1.getMaximumBooks();
}
vwhgwdsa

vwhgwdsa4#

无法在基本类型int上叫用equals(int)

.equals()是一个只在intdouble的对象中使用的方法,就像我所附的图片一样,使用(==)例如(int a == int b)

相关问题