import java.util.Objects; public class User { String name; int age; public User(String name, int age) { this.name = name; this.age = age; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; User user = (User) o; return age == user.age && Objects.equals(name,user.name); } @Override public int hashCode() { return Objects.hash(name, age); } } public class Main { public static void main(String[] args) { User u1 = new User("Amir", 25); User u2 = new User("Amir", 25); User u3 = new User("Amir", 30); User u4 = new User(null, 25); User u5 = new User(null, 25); System.out.println(u1.equals(u2)); System.out.println(u1.equals(u3)); System.out.println(u4.equals(u5)); System.out.println(u1.equals(u4)); } }