Класс Objects
- java.lang.Object
-
- java.util.Objects
public final class Objects extends Object
Этот класс содержит static утилитарные методы для работы с объектами. Эти утилиты включают null-безопасные или null-толерантные методы для вычисления хэш-кода объекта, возвращения строки для объекта и сравнения двух объектов.
- Since:
- 1.7
Методы
| Модификатор и тип | Метод и описание |
|---|---|
static <T> int |
compare(T a,
T b,
Comparator<? super T> c) Возвращает 0, если аргументы идентичны, и |
static boolean |
deepEquals(Object a,
Object b) Возвращает |
static boolean |
equals(Object a,
Object b) Возвращает |
static int |
hash(Object... values) Генерирует хэш-код для последовательности входных значений. |
static int |
hashCode(Object o) Возвращает хэш-код не- |
static boolean |
isNull(Object obj) Возвращает |
static boolean |
nonNull(Object obj) Возвращает |
static <T> T |
requireNonNull(T obj) Проверяет, что указанная ссылка на объект не |
static <T> T |
requireNonNull(T obj,
String message) Проверяет, что указанная ссылка на объект не |
static <T> T |
requireNonNull(T obj,
Supplier<String> messageSupplier) Проверяет, что указанная ссылка на объект не |
static String |
toString(Object o) Возвращает результат вызова |
static String |
toString(Object o,
String nullDefault) Возвращает результат вызова |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы
equals
public static boolean equals(Object a,
Object b) Возвращает true если аргументы равны друг другу и false в противном случае. Следовательно, если оба аргумента null, возвращается true, а если ровно один аргумент null, возвращается false. В противном случае равенство определяется с помощью метода equals первого аргумента.
- Параметры:
-
a- объект -
b- объект для сравнения сaна предмет равенства - Возвращает:
-
trueесли аргументы равны друг другу иfalseв противном случае - См. также:
Object.equals(Object)
deepEquals
public static boolean deepEquals(Object a,
Object b) Возвращает true если аргументы глубоко равны друг другу и false в противном случае. Два null значения глубоко равны. Если оба аргумента являются массивами, алгоритм в Arrays.deepEquals используется для определения равенства. В противном случае равенство определяется с помощью метода equals первого аргумента.
- Параметры:
-
a- объект -
b- объект для сравнения сaна предмет глубокого равенства - Возвращает:
-
trueесли аргументы глубоко равны друг другу иfalseв противном случае - См. также:
-
Arrays.deepEquals(Object[], Object[]),equals(Object, Object)
hashCode
public static int hashCode(Object o)
Возвращает хэш-код не-null аргумента и 0 для null аргумента.
- Параметры:
-
o- объект - Возвращает:
- хэш-код не-
nullаргумента и 0 дляnullаргумента - См. также:
Object.hashCode()
hash
public static int hash(Object... values)
Генерирует хэш-код для последовательности входных значений. Хэш-код генерируется так, как будто все входные значения были помещены в массив, а этот массив был хеширован вызовом Arrays.hashCode(Object[]).
Этот метод полезен для реализации Object.hashCode() на объектах, содержащих несколько полей. Например, если объект имеет три поля, x, y, и z, можно написать:
@Override public int hashCode() {
return Objects.hash(x, y, z);
} Предупреждение: когда предоставляется одна ссылка на объект, возвращаемое значение не равно хэш-коду этой ссылки на объект. Это значение можно вычислить, вызвав hashCode(Object).- Параметры:
-
values- значения, которые нужно хешировать - Возвращает:
- значение хэша последовательности входных значений
- См. также:
-
Arrays.hashCode(Object[]),List.hashCode()
toString
public static String toString(Object o)
Возвращает результат вызова toString для не-null аргумента и "null" для null аргумента.
- Параметры:
-
o- объект - Возвращает:
- результат вызова
toStringдля не-nullаргумента и"null"дляnullаргумента - См. также:
-
Object.toString(),String.valueOf(Object)
toString
public static String toString(Object o,
String nullDefault) Возвращает результат вызова toString для первого аргумента, если первый аргумент не null, и возвращает второй аргумент в противном случае.
- Параметры:
-
o- объект -
nullDefault- строка, возвращаемая, если первый аргументnull - Возвращает:
- результат вызова
toStringдля первого аргумента, если он неnull, и второй аргумент в противном случае. - См. также:
toString(Object)
compare
public static <T> int compare(T a,
T b,
Comparator<? super T> c) Возвращает 0, если аргументы идентичны, и c.compare(a, b) в противном случае. Следовательно, если оба аргумента null, возвращается 0.
Обратите внимание, что если один из аргументов null, может или не может быть выброшено NullPointerException, в зависимости от того, какая политика упорядочения, если таковая имеется, политика Comparator выбирает для null значений.
- Параметры типа:
-
T- тип сравниваемых объектов - Параметры:
-
a- объект -
b- объект для сравнения сa -
c-Comparatorдля сравнения первых двух аргументов - Возвращает:
- 0, если аргументы идентичны, и
c.compare(a, b)в противном случае. - См. также:
-
Comparable,Comparator
requireNonNull
public static <T> T requireNonNull(T obj)
Проверяет, что указанная ссылка на объект не null. Этот метод предназначен в первую очередь для проверки параметров в методах и конструкторах, как показано ниже:
public Foo(Bar bar) {
this.bar = Objects.requireNonNull(bar);
} - Параметры типа:
-
T- тип ссылки - Параметры:
-
obj- ссылка на объект для проверки на пустоту - Возвращает:
-
objесли неnull - Исключения:
-
NullPointerException- еслиobjявляетсяnull
requireNonNull
public static <T> T requireNonNull(T obj,
String message) Проверяет, что указанная ссылка на объект не null и выбросит настроенное исключение NullPointerException, если она есть. Этот метод предназначен в первую очередь для проверки параметров в методах и конструкторах с несколькими параметрами, как показано ниже:
public Foo(Bar bar, Baz baz) {
this.bar = Objects.requireNonNull(bar, "bar must not be null");
this.baz = Objects.requireNonNull(baz, "baz must not be null");
} - Параметры типа:
-
T- тип ссылки - Параметры:
-
obj- ссылка на объект для проверки на пустоту -
message- сообщение об ошибке, используемое в случае выброса исключенияNullPointerException - Возвращает:
-
objесли неnull - Исключения:
-
NullPointerException- еслиobjявляетсяnull
isNull
public static boolean isNull(Object obj)
Возвращает true если предоставленная ссылка является null, в противном случае возвращает false.
- Примечание API:
- Этот метод предназначен для использования в качестве
Predicate,filter(Objects::isNull) - Параметры:
-
obj- ссылка, проверяемая наnull - Возвращает:
-
trueесли предоставленная ссылка являетсяnull, в противном случаеfalse - С:
- 1.8
- См. также:
Predicate
nonNull
public static boolean nonNull(Object obj)
Возвращает true если предоставленная ссылка не null, в противном случае возвращает false.
- Примечание API:
- Этот метод предназначен для использования в качестве
Predicate,filter(Objects::nonNull) - Параметры:
-
obj- ссылка для проверки наnull - Возвращает:
-
trueесли предоставленная ссылка неnull, в противном случаеfalse - С:
- 1.8
- См. также:
Predicate
requireNonNull
public static <T> T requireNonNull(T obj,
Supplier<String> messageSupplier) Проверяет, что указанная ссылка на объект не null и выбросит настроенное исключение NullPointerException, если она есть.
В отличие от метода requireNonNull(Object, String), этот метод позволяет отложить создание сообщения до проверки на null. Хотя это может обеспечить преимущество производительности в случае непустой ссылки, при принятии решения о вызове этого метода следует учесть, что затраты на создание поставщика сообщений меньше, чем затраты на непосредственное создание строкового сообщения.
- Параметры типа:
-
T- тип ссылки - Параметры:
-
obj- ссылка на объект для проверки на пустоту -
messageSupplier- поставщик сообщения об ошибке, используемого в случае выброса исключенияNullPointerException - Возвращает:
-
objесли неnull - Исключения:
-
NullPointerException- еслиobjявляетсяnull - С:
- 1.8
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.