我怎样才能解决这个问题等于在基本类型(INT)
问题描述:
我的继承人为图书馆应用我怎样才能解决这个问题等于在基本类型(INT)
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()))
这是说不能调用的基本类型.equals代码(INT)
我知道这意味着什么,但我已经尝试了一切,我无法考虑如何纠正它。
如果您需要其他类的任何代码,请告知我。
答
equals()
用于Object
S(String
,Integer
,等...)
对于元像int
,boolean
,char
等,你必须使用==
答
getMaximumbooks()
返回一个基本类型int
不是Object
。你必须将其与==
或在您的情况下!=
(不equals
)
if (this.getMaximumbooks() != p1.getMaximumbooks())
{
return false;
}
return true;
答
只需使用==
如果您要比较比较原语。
此外,因为您已经可以访问所有字段(private
或不是),所以在工作时不要使用getters
。
public boolean equals(Person p1)
{
return this.maximumBooks == p1.getMaximumBooks();
}
使用''==来比较基元 – SomeJavaGuy
使用''=='不.equals()'原语 –
旁注代码质量:使用camlCase也为您的变量名。而且 - 做它应该做的事情;它应该读取'getMaximumBooks()'例如。 – GhostCat