我需要在“if”语句中写什么才能检查对象的变量(数字)是否等于数组中的任何对象的变量(数字)?
public class Question{
private int number;
private String questionString;
private int index = 0;
public Question(int number, String questionString){
if(number < 0){
System.out.print("Number cannot be negative!");
}
if(questionString.equals(null) || questionString.trim().isEmpty()){
System.out.print("Question cannot be empty!");
}
this.number = number;
this.questionString = questionString;
}
public boolean equals(Object o){
if(o instanceof Question){
for(int i = 0; i < index; i++){
if(.... ){
}
}
return true;
}
return false;
}
}
测试类(主类),ofc 尚未完成,我只是希望它能为您提供足够的信息,了解如何继续我的问题类:
public class Test{
String name;
Question[] questions;
public Testi(String name, int nrQuestions){
}
public static void main(String[]args){
}
}
这应该做:
public boolean equals(Object o){
if (o == null )
return false;
if(o instanceof Question){
if (((Question)o).number == this.number ){
if (this.questionString.equals(((Question)o).questionString)){
return true;
}
}
}
return false;
}
但要小心,如果您要实现 equals()
,您还应该实现 hashCode()
。你的“模型”应该清楚地表明两个对象何时相等。就您而言,我想说,当两个问题的编号
相同时,那么问题也是相同的。如果没有,您还应该将 questionString
添加到支票
我是一名优秀的程序员,十分优秀!