Класс Objects
public final class Objects extends Object
static служебных методов для работы с объектами или проверки определённых условий перед выполнением операции. Эти служебные методы включают методы, безопасные при null и допускающие null, для вычисления хеш-кода объекта, получения строкового представления объекта, сравнения двух объектов и проверки выхода индексов или значений поддиапазонов за допустимые границы.- С версии:
- 1.7
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static int |
checkFromIndexSize |
Проверяет, находится ли поддиапазон от fromIndex (включительно) до fromIndex + size (не включительно) в пределах диапазона от 0 (включительно) до length (не включительно). |
static long |
checkFromIndexSize |
Проверяет, находится ли поддиапазон от fromIndex (включительно) до fromIndex + size (не включительно) в пределах диапазона от 0 (включительно) до length (не включительно). |
static int |
checkFromToIndex |
Проверяет, находится ли поддиапазон от fromIndex (включительно) до toIndex (не включительно) в пределах диапазона от 0 (включительно) до length (не включительно). |
static long |
checkFromToIndex |
Проверяет, находится ли поддиапазон от fromIndex (включительно) до toIndex (не включительно) в пределах диапазона от 0 (включительно) до length (не включительно). |
static int |
checkIndex |
Проверяет, находится ли index в пределах диапазона от 0 (включительно) до length (не включительно). |
static long |
checkIndex |
Проверяет, находится ли index в пределах диапазона от 0 (включительно) до length (не включительно). |
static <T> int |
compare |
Возвращает 0, если аргументы идентичны, и
c.compare(a, b) в противном случае. |
static boolean |
deepEquals |
Возвращает true, если аргументы глубоко равны друг другу, и false в противном случае. |
static boolean |
equals |
Возвращает true, если аргументы равны друг другу, и false в противном случае. |
static int |
hash |
Возвращает хеш-код последовательности входных значений. |
static int |
hashCode |
Возвращает хеш-код аргумента, не равного null, и 0 для аргумента, равного null. |
static boolean |
isNull |
Возвращает true, если переданная ссылка равна
null; в противном случае возвращает false. |
static boolean |
nonNull |
Возвращает true, если переданная ссылка не равна null; в противном случае возвращает false. |
static <T> T |
requireNonNull |
Проверяет, что указанная ссылка на объект не равна null. |
static <T> T |
requireNonNull |
Проверяет, что указанная ссылка на объект не равна null, и выбрасывает пользовательское исключение NullPointerException, если это не так. |
static <T> T |
requireNonNull |
Проверяет, что указанная ссылка на объект не равна null, и выбрасывает пользовательское исключение NullPointerException, если это не так. |
static <T> T |
requireNonNullElse |
Возвращает первый аргумент, если он не равен null, а в противном случае — второй аргумент, если он не равен null. |
static <T> T |
requireNonNullElseGet |
Возвращает первый аргумент, если он не равен null, а в противном случае — значение из supplier.get(), если оно не равно null. |
static String |
toIdentityString |
Возвращает строку, эквивалентную строке, возвращаемой методом
Object.toString, если этот метод и hashCode не переопределены. |
static String |
toString |
Возвращает результат вызова toString для аргумента, не равного null, и "null" для аргумента, равного null. |
static String |
toString |
Возвращает результат вызова toString для первого аргумента, если первый аргумент не равен null, и второго аргумента в противном случае. |
Подробное описание методов
equals
public static boolean equals(Object a, Object b)
true, если аргументы равны друг другу, и false в противном случае. Следовательно, если оба аргумента равны null, возвращается true. В противном случае, если первый аргумент не равен
null, равенство определяется вызовом метода equals первого аргумента с передачей ему второго аргумента этого метода. Иначе возвращается false.- Параметры:
-
a— объект -
b— объект для сравнения сaна равенство - Возвращает:
-
true, если аргументы равны друг другу, иfalseв противном случае - См. также:
deepEquals
public static boolean deepEquals(Object a, Object b)
true, если аргументы глубоко равны друг другу, и false в противном случае. Два значения null глубоко равны. Если оба аргумента являются массивами, для определения равенства используется алгоритм из Arrays.deepEquals. В противном случае равенство определяется с помощью метода equals первого аргумента.- Параметры:
-
a— объект -
b— объект для сравнения сaна глубокое равенство - Возвращает:
-
true, если аргументы глубоко равны друг другу, иfalseв противном случае - См. также:
hashCode
public static int hashCode(Object o)
null, и 0 для аргумента, равного null.- Параметры:
-
o— объект - Возвращает:
- хеш-код аргумента, не равного
null, и 0 для аргумента, равногоnull - См. также:
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— значения, для которых вычисляется хеш-код - Возвращает:
- хеш-код последовательности входных значений
- См. также:
toString
public static String toString(Object o)
toString для аргумента, не равного null, и "null" для аргумента, равного null.- Параметры:
-
o— объект - Возвращает:
- результат вызова
toStringдля аргумента, не равногоnull, и"null"для аргумента, равногоnull - См. также:
toString
public static String toString(Object o, String nullDefault)
toString для первого аргумента, если первый аргумент не равен null, и второго аргумента в противном случае.- Параметры:
-
o— объект -
nullDefault— строка, возвращаемая, если первый аргумент равенnull - Возвращает:
- результат вызова
toStringдля первого аргумента, если первый аргумент не равенnull, и второго аргумента в противном случае - См. также:
toIdentityString
public static String toIdentityString(Object o)
Object.toString, если этот метод и hashCode не переопределены.- Требования к реализации:
- Метод возвращает строку, эквивалентную следующей:
o.getClass().getName() + "@" + Integer.toHexString(System.identityHashCode(o)) - Примечание по реализации:
- Этот метод формирует строку для объекта, не вызывая переопределяемые методы этого объекта.
- Параметры:
-
o— объект - Возвращает:
- строку, эквивалентную строке, возвращаемой методом
Object.toString, если этот метод иhashCodeне переопределены - Выбрасывает:
-
NullPointerException— если аргумент равен null - С версии:
- 19
- См. также:
compare
public static <T> int compare(T a, T b, Comparator<? super T> c)
c.compare(a, b) в противном случае. Следовательно, если оба аргумента равны null, возвращается 0. Обратите внимание: если один из аргументов равен null, может быть выброшено или не выброшено
NullPointerException — это зависит от того, какую политику упорядочения (если таковая имеется) интерфейс Comparator выбирает для значений null.
- Параметры типа:
T— тип сравниваемых объектов- Параметры:
-
a— объект -
b— объект для сравнения сa -
c—Comparatorдля сравнения первых двух аргументов - Возвращает:
- 0, если аргументы идентичны, и
c.compare(a, b)в противном случае - См. также:
requireNonNull
public static <T> T requireNonNull(T obj)
null. Этот метод предназначен главным образом для проверки параметров в методах и конструкторах, как показано ниже:
public Foo(Bar bar) {
this.bar = Objects.requireNonNull(bar);
}
- Параметры типа:
T— тип ссылки- Параметры:
-
obj— ссылка на объект для проверки на null - Возвращает:
-
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— ссылка на объект для проверки на null -
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
- См. также:
nonNull
public static boolean nonNull(Object obj)
true, если переданная ссылка не равна null; в противном случае возвращает false.- Примечание API:
- Этот метод предназначен для использования в качестве
Predicate,filter(Objects::nonNull) - Параметры:
-
obj— ссылка для проверки на равенствоnull - Возвращает:
-
true, если переданная ссылка не равнаnull; в противном случае возвращаетfalse - С версии:
- 1.8
- См. также:
requireNonNullElse
public static <T> T requireNonNullElse(T obj, T defaultObj)
null, а в противном случае — второй аргумент, если он не равен null.- Параметры типа:
T— тип ссылки- Параметры:
-
obj— объект -
defaultObj— объект, не равныйnull, возвращаемый, если первый аргумент равенnull - Возвращает:
- первый аргумент, если он не равен
null, а в противном случае — второй аргумент, если он не равенnull - Выбрасывает:
-
NullPointerException— если обаobjравны null, аdefaultObjравноnull - С версии:
- 9
requireNonNullElseGet
public static <T> T requireNonNullElseGet(T obj, Supplier<? extends T> supplier)
null, а в противном случае — значение из supplier.get(), если оно не равно null.- Параметры типа:
T— тип первого аргумента и возвращаемого значения- Параметры:
-
obj— объект -
supplier— объект, не равныйnull, для возврата, если первый аргумент равенnull - Возвращает:
- первый аргумент, если он не равен
null, а в противном случае — значение изsupplier.get(), если оно не равноnull - Выбрасывает:
-
NullPointerException— если обаobjравны null и либоsupplierравноnull, либо значениеsupplier.get()равноnull - С версии:
- 9
requireNonNull
public static <T> T requireNonNull(T obj, Supplier<String> messageSupplier)
null, и выбрасывает пользовательское исключение NullPointerException, если это не так. В отличие от метода requireNonNull(Object, String), этот метод позволяет отложить создание сообщения до завершения проверки на null. Это может повысить производительность, если значение не равно null, однако при вызове этого метода следует убедиться, что затраты на создание поставщика сообщения меньше затрат на непосредственное создание строки сообщения.
- Параметры типа:
T— тип ссылки- Параметры:
-
obj— ссылка на объект для проверки на null -
messageSupplier— поставщик подробного сообщения, используемого в случае выбрасыванияNullPointerException - Возвращает:
-
obj, если не равноnull - Выбрасывает:
-
NullPointerException— еслиobjравноnull - С версии:
- 1.8
checkIndex
public static int checkIndex(int index, int length)
index в пределах диапазона от 0 (включительно) до length (не включительно). Считается, что index выходит за допустимые границы, если выполняется любое из следующих неравенств:
index < 0index >= length-
length < 0, что следует из предыдущих неравенств
- Параметры:
-
index— индекс -
length— верхняя граница диапазона (не включительно) - Возвращает:
-
index, если он находится в пределах диапазона - Выбрасывает:
-
IndexOutOfBoundsException— еслиindexвыходит за допустимые границы - С версии:
- 9
checkFromToIndex
public static int checkFromToIndex(int fromIndex, int toIndex, int length)
fromIndex (включительно) до toIndex (не включительно) в пределах диапазона от 0 (включительно) до length (не включительно). Считается, что поддиапазон выходит за допустимые границы, если выполняется любое из следующих неравенств:
fromIndex < 0fromIndex > toIndextoIndex > length-
length < 0, что следует из предыдущих неравенств
- Параметры:
-
fromIndex— нижняя граница поддиапазона (включительно) -
toIndex— верхняя граница поддиапазона (не включительно) -
length— верхняя граница диапазона (не включительно) - Возвращает:
-
fromIndex, если поддиапазон находится в пределах диапазона - Выбрасывает:
-
IndexOutOfBoundsException— если поддиапазон выходит за допустимые границы - С версии:
- 9
checkFromIndexSize
public static int checkFromIndexSize(int fromIndex, int size, int length)
fromIndex (включительно) до fromIndex + size (не включительно) в пределах диапазона от 0 (включительно) до length (не включительно). Считается, что поддиапазон выходит за допустимые границы, если выполняется любое из следующих неравенств:
fromIndex < 0size < 0-
fromIndex + size > lengthс учётом переполнения целого числа -
length < 0, что следует из предыдущих неравенств
- Параметры:
-
fromIndex— нижняя граница подинтервала (включительно) -
size— размер поддиапазона -
length— верхняя граница диапазона (не включительно) - Возвращает:
-
fromIndex, если поддиапазон находится в пределах диапазона - Выбрасывает:
-
IndexOutOfBoundsException— если поддиапазон выходит за допустимые границы - С версии:
- 9
checkIndex
public static long checkIndex(long index, long length)
index в пределах диапазона от 0 (включительно) до length (не включительно). Считается, что index выходит за допустимые границы, если выполняется любое из следующих неравенств:
index < 0index >= length-
length < 0, что следует из предыдущих неравенств
- Параметры:
-
index— индекс -
length— верхняя граница диапазона (не включительно) - Возвращает:
-
index, если он находится в пределах диапазона - Выбрасывает:
-
IndexOutOfBoundsException— еслиindexвыходит за допустимые границы - С версии:
- 16
checkFromToIndex
public static long checkFromToIndex(long fromIndex, long toIndex, long length)
fromIndex (включительно) до toIndex (не включительно) в пределах диапазона от 0 (включительно) до length (не включительно). Считается, что поддиапазон выходит за допустимые границы, если выполняется любое из следующих неравенств:
fromIndex < 0fromIndex > toIndextoIndex > length-
length < 0, что следует из предыдущих неравенств
- Параметры:
-
fromIndex— нижняя граница поддиапазона (включительно) -
toIndex— верхняя граница поддиапазона (не включительно) -
length— верхняя граница диапазона (не включительно) - Возвращает:
-
fromIndex, если поддиапазон находится в пределах диапазона - Выбрасывает:
-
IndexOutOfBoundsException— если поддиапазон выходит за допустимые границы - С версии:
- 16
checkFromIndexSize
public static long checkFromIndexSize(long fromIndex, long size, long length)
fromIndex (включительно) до fromIndex + size (не включительно) в пределах диапазона от 0 (включительно) до length (не включительно). Считается, что поддиапазон выходит за допустимые границы, если выполняется любое из следующих неравенств:
fromIndex < 0size < 0-
fromIndex + size > lengthс учётом переполнения целого числа -
length < 0, что следует из предыдущих неравенств
- Параметры:
-
fromIndex— нижняя граница подинтервала (включительно) -
size— размер поддиапазона -
length— верхняя граница диапазона (не включительно) - Возвращает:
-
fromIndex, если поддиапазон находится в пределах диапазона - Выбрасывает:
-
IndexOutOfBoundsException— если поддиапазон выходит за допустимые границы - С версии:
- 16
© 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/Objects.html