Spec-Zone.ru › OpenJDK 25

Класс Objects

java.lang.Object
java.util.Objects
public final class Objects extends Object
Этот класс состоит из static служебных методов для работы с объектами или проверки определённых условий перед выполнением операции. Эти служебные методы включают методы, безопасные при null и допускающие null, для вычисления хеш-кода объекта, получения строкового представления объекта, сравнения двух объектов и проверки выхода индексов или значений поддиапазонов за допустимые границы.
С версии:
1.7

Краткое описание методов

Модификатор и тип Метод Описание
static int checkFromIndexSize(int fromIndex, int size, int length)
Проверяет, находится ли поддиапазон от fromIndex (включительно) до fromIndex + size (не включительно) в пределах диапазона от 0 (включительно) до length (не включительно).
static long checkFromIndexSize(long fromIndex, long size, long length)
Проверяет, находится ли поддиапазон от fromIndex (включительно) до fromIndex + size (не включительно) в пределах диапазона от 0 (включительно) до length (не включительно).
static int checkFromToIndex(int fromIndex, int toIndex, int length)
Проверяет, находится ли поддиапазон от fromIndex (включительно) до toIndex (не включительно) в пределах диапазона от 0 (включительно) до length (не включительно).
static long checkFromToIndex(long fromIndex, long toIndex, long length)
Проверяет, находится ли поддиапазон от fromIndex (включительно) до toIndex (не включительно) в пределах диапазона от 0 (включительно) до length (не включительно).
static int checkIndex(int index, int length)
Проверяет, находится ли index в пределах диапазона от 0 (включительно) до length (не включительно).
static long checkIndex(long index, long length)
Проверяет, находится ли index в пределах диапазона от 0 (включительно) до length (не включительно).
static <T> int compare(T a, T b, Comparator<? super T> c)
Возвращает 0, если аргументы идентичны, и c.compare(a, b) в противном случае.
static boolean deepEquals(Object a, Object b)
Возвращает true, если аргументы глубоко равны друг другу, и false в противном случае.
static boolean equals(Object a, Object b)
Возвращает true, если аргументы равны друг другу, и false в противном случае.
static int hash(Object... values)
Возвращает хеш-код последовательности входных значений.
static int hashCode(Object o)
Возвращает хеш-код аргумента, не равного null, и 0 для аргумента, равного null.
static boolean isNull(Object obj)
Возвращает true, если переданная ссылка равна null; в противном случае возвращает false.
static boolean nonNull(Object obj)
Возвращает true, если переданная ссылка не равна null; в противном случае возвращает false.
static <T> T requireNonNull(T obj)
Проверяет, что указанная ссылка на объект не равна null.
static <T> T requireNonNull(T obj, String message)
Проверяет, что указанная ссылка на объект не равна null, и выбрасывает пользовательское исключение NullPointerException, если это не так.
static <T> T requireNonNull(T obj, Supplier<String> messageSupplier)
Проверяет, что указанная ссылка на объект не равна null, и выбрасывает пользовательское исключение NullPointerException, если это не так.
static <T> T requireNonNullElse(T obj, T defaultObj)
Возвращает первый аргумент, если он не равен null, а в противном случае — второй аргумент, если он не равен null.
static <T> T requireNonNullElseGet(T obj, Supplier<? extends T> supplier)
Возвращает первый аргумент, если он не равен null, а в противном случае — значение из supplier.get(), если оно не равно null.
static String toIdentityString(Object o)
Возвращает строку, эквивалентную строке, возвращаемой методом Object.toString, если этот метод и hashCode не переопределены.
static String toString(Object o)
Возвращает результат вызова toString для аргумента, не равного null, и "null" для аргумента, равного null.
static String toString(Object o, String nullDefault)
Возвращает результат вызова toString для первого аргумента, если первый аргумент не равен null, и второго аргумента в противном случае.

Методы, объявленные в классе 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, равенство определяется вызовом метода equals первого аргумента с передачей ему второго аргумента этого метода. Иначе возвращается false.
Параметры:
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)

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
См. также:
  • Object.toString()
  • System.identityHashCode(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 — ссылка на объект для проверки на 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
См. также:
  • Predicate

nonNull

public static boolean nonNull(Object obj)
Возвращает true, если переданная ссылка не равна null; в противном случае возвращает false.
Примечание API:
Этот метод предназначен для использования в качестве Predicate, filter(Objects::nonNull)
Параметры:
obj — ссылка для проверки на равенство null
Возвращает:
true, если переданная ссылка не равна null; в противном случае возвращает false
С версии:
1.8
См. также:
  • Predicate

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 < 0
  • index >= 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 < 0
  • fromIndex > toIndex
  • toIndex > 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 < 0
  • size < 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 < 0
  • index >= 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 < 0
  • fromIndex > toIndex
  • toIndex > 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 < 0
  • size < 0
  • fromIndex + size > length с учётом переполнения целого числа
  • length < 0, что следует из предыдущих неравенств
Параметры:
fromIndex — нижняя граница подинтервала (включительно)
size — размер поддиапазона
length — верхняя граница диапазона (не включительно)
Возвращает:
fromIndex, если поддиапазон находится в пределах диапазона
Выбрасывает:
IndexOutOfBoundsException — если поддиапазон выходит за допустимые границы
С версии:
16

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры основных понятий, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065, США.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API