Je compare les mêmes objets en utilisant les méthodes == et equals(), mais les deux ne fonctionnent pas. J'ai essayé quatre combinaisons comme suit. S'il vous plaît guidez-moi si je fais une erreur.
public class Question {
int rollNo;
String name;
Question(int rollNo, String name) {
this.rollNo = new Integer(rollNo);
this.name = new String(name);
}
public int getRollNo() {
return new Integer(rollNo);
}
public void setRollNo(int rollNo) {
if(rollNo>0) this.rollNo = rollNo;
}
public String getName() {
return new String(name);
}
public void setName(String name) {
if(name!=null) this.name = name;
}
public static void main(String[] args) {
Question obj1 = new Question(123, "Student1");
Question obj2 = new Question(123, "Student1");
Question obj3 = new Question(456, "Student2");
// Toutes les conditions if évaluent à false
if(obj1 == obj2) System.out.println("Objets 1 et 2 égaux en utilisant ==");
if(obj1.equals(obj2)) System.out.println("Objets 1 et 2 égaux en utilisant equals()");
if(obj1 == new Question(123, "Student1")) System.out.println("Objets 1 et 2 égaux en utilisant == et new");
if((new Question(123, "Student1")).equals(obj2)) System.out.println("Objets 1 et 2 égaux en utilisant equals() et new");
}
}
Je suis ouvert aux suggestions sur la qualité de mon code car je viens de commencer à coder.