Spec-Zone.ru › OpenJDK 17

Класс 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, в противном случае возвращает не-null значение supplier.get().
static String toString(Object o)
Возвращает результат вызова toString для не- null аргумента и "null" для null аргумента.
static String toString(Object o, String nullDefault)
Возвращает результат вызова toString для первого аргумента, если первый аргумент не null, и возвращает второй аргумент в противном случае.

Методы, объявленные в классе 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, равенство определяется путем вызова метода 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)

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 второй аргумент.
Type Parameters:
T - тип ссылки
Parameters:
obj - объект
defaultObj - не-null объект для возврата, если первый аргумент null
Returns:
первый аргумент, если он не-null, и в противном случае второй аргумент, если он не-null
Throws:
NullPointerException - если оба obj равны null, и defaultObj равен null
Since:
9

requireNonNullElseGet

public static <T> T requireNonNullElseGet(T obj, Supplier<? extends T> supplier)
Возвращает первый аргумент, если он не-null, и в противном случае возвращает не-null значение supplier.get().
Type Parameters:
T - тип первого аргумента и возвращаемого значения
Parameters:
obj - объект
supplier - поставщик не-null объекта для возврата, если первый аргумент null
Returns:
первый аргумент, если он не-null, и в противном случае значение из supplier.get(), если оно не-null
Throws:
NullPointerException - если первый аргумент obj равен null и либо поставщик supplier возвращает null, либо возвращаемое значение supplier.get() равно null
Since:
9

requireNonNull

public static <T> T requireNonNull(T obj, Supplier<String> messageSupplier)
Проверяет, что указанная ссылка на объект не null и выбрасывает настроенное исключение NullPointerException, если это так.

В отличие от метода requireNonNull(Object, String), этот метод позволяет отложить создание сообщения до проверки на null. Хотя это может обеспечить преимущество производительности в случае не-null, при решении вызвать этот метод следует учитывать, что затраты на создание поставщика сообщений меньше, чем затраты на непосредственное создание строкового сообщения.

Type Parameters:
T - тип ссылки
Parameters:
obj - ссылка на объект, проверяемый на null
messageSupplier - поставщик детализирующего сообщения, используемого в случае выбрасывания NullPointerException
Returns:
obj если не null
Throws:
NullPointerException - если obj равен null
Since:
1.8

checkIndex

public static int checkIndex(int index, int length)
Проверяет, находится ли index в пределах диапазона от 0 (включительно) до length (исключительно).

index считается вне границ, если выполняется любое из следующих неравенств:

  • index < 0
  • index >= length
  • length < 0, что подразумевается из предыдущих неравенств
Parameters:
index - индекс
length - верхняя граница (исключая) диапазона
Returns:
index если находится в границах диапазона
Throws:
IndexOutOfBoundsException - если index выходит за пределы границ
Since:
9

checkFromToIndex

public static int checkFromToIndex(int fromIndex, int toIndex, int length)
Проверяет, находится ли поддиапазон от fromIndex (включительно) до toIndex (исключительно) в пределах границ диапазона от 0 (включительно) до length (исключительно).

Поддиапазон считается вне границ, если выполняется любое из следующих неравенств:

  • fromIndex < 0
  • fromIndex > toIndex
  • toIndex > length
  • length < 0, что подразумевается из предыдущих неравенств
Parameters:
fromIndex - нижняя граница (включительно) поддиапазона
toIndex - верхняя граница (исключая) поддиапазона
length - верхняя граница (исключая) диапазона
Returns:
fromIndex если поддиапазон находится в пределах границ диапазона
Throws:
IndexOutOfBoundsException - если поддиапазон выходит за пределы границ
Since:
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, что подразумевается из предыдущих неравенств
Parameters:
fromIndex - нижняя граница (включительно) поддиапазона
size - размер поддиапазона
length - верхняя граница (исключая) диапазона
Returns:
fromIndex если поддиапазон находится в пределах границ диапазона
Throws:
IndexOutOfBoundsException - если поддиапазон выходит за пределы границ
Since:
9

checkIndex

public static long checkIndex(long index, long length)
Проверяет, находится ли index в пределах диапазона от 0 (включительно) до length (исключительно).

index считается вне границ, если выполняется любое из следующих неравенств:

  • index < 0
  • index >= length
  • length < 0, что подразумевается из предыдущих неравенств
Parameters:
index - индекс
length - верхняя граница (исключая) диапазона
Returns:
index если находится в границах диапазона
Throws:
IndexOutOfBoundsException - если index выходит за пределы границ
Since:
16

checkFromToIndex

public static long checkFromToIndex(long fromIndex, long toIndex, long length)
Проверяет, находится ли поддиапазон от fromIndex (включительно) до toIndex (исключительно) в пределах границ диапазона от 0 (включительно) до length (исключительно).

Поддиапазон считается вне границ, если выполняется любое из следующих неравенств:

  • fromIndex < 0
  • fromIndex > toIndex
  • toIndex > length
  • length < 0, что подразумевается из предыдущих неравенств
Parameters:
fromIndex - нижняя граница (включительно) поддиапазона
toIndex - верхняя граница (исключая) поддиапазона
length - верхняя граница (исключая) диапазона
Returns:
fromIndex если поддиапазон находится в пределах границ диапазона
Throws:
IndexOutOfBoundsException - если поддиапазон выходит за пределы границ
Since:
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, что подразумевается из предыдущих неравенств
Parameters:
fromIndex - нижняя граница (включительно) поддиапазона
size - размер поддиапазона
length - верхняя граница (исключая) диапазона
Returns:
fromIndex если поддиапазон находится в пределах границ диапазона
Throws:
IndexOutOfBoundsException - если поддиапазон выходит за пределы границ
Since:
16

© 1993, 2021, 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/17/docs/api/java.base/java/util/Objects.html

Spec-Zone.ru

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