这是我的库应用程序代码
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
我知道这意味着什么,但我已经尝试了一切,我不知道如何纠正它。
如果你需要其他类的代码,请告诉我。
4条答案
按热度按时间vm0i2vca1#
equals()
用于Object
s(String
、Integer
等)对于
int
、boolean
、char
等基元,必须使用==
wbgh16ku2#
getMaximumbooks()
返回一个基元类型int
,而不是Object
。您必须将其与==
或!=
(而不是equals
)进行比较kxeu7u2r3#
如果要比较原语,只需使用
==
。此外,在处理类时尽量不要使用
getters
,因为您已经可以访问所有字段(不管是否为private
)。vwhgwdsa4#
无法在基本类型
int
上叫用equals(int)
.equals()
是一个只在int
,double
的对象中使用的方法,就像我所附的图片一样,使用(==)例如(int a == int b)