Nepaisyti lygu metodo Java
Objektų klasės metodas equals(), kuris priima objektą ir lygina jį su esamu objektu, naudojamas dviejų objektų palyginimui. Jei nuorodos į šiuos du objektus buvo lygios, metodas grąžina true; kitaip – ne.
Pavyzdys
Klasė Darbuotojas šiame pavyzdyje turi du kintamuosius: vardą ir amžių, taip pat parametrizuotą funkciją Object() { [native code] }.
Naudodami equals() metodą, iš pagrindinio metodo sukuriame du objektus, pateikdami identiškus duomenis ir palygindami rezultatus.
Ši programinė įranga grąžina klaidingą, nes metodas Object class' equals() grąžina teisingą tik tada, jei nuorodos į objektus yra identiškos.
Pavyzdinis kodas, skirtas nepaisyti lygybės metodo:
EqualsExpl.java
import java.util.Scanner; class Student { private String n; private int a; Student(String n, int a){ this.n = n; this.a = a; } } public class EqualsExpl { public static void main(String[] args) { Student s1 = new Student('Sonoo', 19); Student s2 = new Student('Jaiswal', 19); // Comparing the two instances boolean bool = s1.equals(s2); System.out.println(bool); } } Išvestis:
Metodo equals() nepaisymas
Galite sukurti savo lygybės metodo versiją, nes objektas iš tikrųjų yra visų „Java“ klasių superklasė.
Kodo pavyzdys:
EqualsExpl1.java
class Student { private String n; private int a; Student(String n, int a){ this.n = n; this.a = a; } public boolean equals(Object o) { if (o == this) { return true; } if (!(o instanceof Student)) { return false; } Student s = (Student) o; return n.equals(s.n)&& Integer.compare(a, s.a) == 0; } } public class EqualsExpl1 { public static void main(String[] args) { Student s1 = new Student('Sonoo', 19); Student s2 = new Student('Jaiswal', 19); //Comparing the two instances boolean bool = s1.equals(s2); System.out.println(bool); } } Išvestis: