Метод equals класса Objects
Метод equals класса Objects сравнивает
два объекта и возвращает true, если они равны,
и false в противном случае. В первый параметр
мы передаем первый объект для сравнения, во второй -
второй объект. Главное отличие от обычного метода
equals заключается в том, что этот метод
безопасно работает с null: если оба объекта
равны null, метод вернет true, а если
только один из них null - вернет false.
Это избавляет от необходимости писать проверки на
null вручную.
Синтаксис
Objects.equals(obj1, obj2)
Пример
Давайте сравним две одинаковые строки:
import java.util.Objects;
public class Main
{
public static void main(String[] args)
{
String str1 = "abcde";
String str2 = "abcde";
boolean res = Objects.equals(str1, str2);
System.out.println(res);
}
}
Результат выполнения кода:
true
Пример
Давайте сравним две разные строки:
import java.util.Objects;
public class Main
{
public static void main(String[] args)
{
String str1 = "abcde";
String str2 = "12345";
boolean res = Objects.equals(str1, str2);
System.out.println(res);
}
}
Результат выполнения кода:
false
Пример
Давайте сравним объект с null:
import java.util.Objects;
public class Main
{
public static void main(String[] args)
{
String str = "abcde";
boolean res = Objects.equals(str, null);
System.out.println(res);
}
}
Результат выполнения кода:
false
Пример
Давайте сравним два null между собой:
import java.util.Objects;
public class Main
{
public static void main(String[] args)
{
boolean res = Objects.equals(null, null);
System.out.println(res);
}
}
Результат выполнения кода:
true
Пример
Давайте сравним два объекта пользовательского класса:
import java.util.Objects;
public class Main
{
public static void main(String[] args)
{
User user1 = new User("abcde", 1);
User user2 = new User("abcde", 1);
boolean res = Objects.equals(user1, user2);
System.out.println(res);
}
}
class User
{
private String name;
private int id;
public User(String name, int id)
{
this.name = name;
this.id = id;
}
@Override
public boolean equals(Object obj)
{
if (this == obj)
{
return true;
}
if (obj == null || getClass() != obj.getClass())
{
return false;
}
User user = (User) obj;
return id == user.id && Objects.equals(name, user.name);
}
@Override
public int hashCode()
{
return Objects.hash(name, id);
}
}
Результат выполнения кода:
true
Смотрите также
-
класс
Objects,
который содержит утилитные методы для работы с объектами -
метод
requireNonNull,
который проверяет объект на null -
метод
isNull,
который проверяет объект на null -
метод
nonNull,
который проверяет объект на неравенство null