Класс Objects

public final class Objects
extends Object

Этот класс содержит static утилитарные методы для работы с объектами или проверки определённых условий перед выполнением операции. Эти утилиты включают null или null методы для вычисления хэш-кода объекта, возврата строки для объекта, сравнения двух объектов и проверки, находятся ли индексы или значения поддиапазона за пределами границ.

Примечание API:
Статические методы, такие как checkIndex(int, int), checkFromToIndex(int, int, int) и checkFromIndexSize(int, int, int), предоставляются для удобства проверки, находятся ли значения, соответствующие индексам и поддиапазонам, за пределами границ. Разновидности этих статических методов поддерживают настройку исключения времени выполнения и соответствующего сообщения об исключении, которое выбрасывается, когда значения находятся за пределами границ. Такие методы принимают аргумент функционального интерфейса, экземпляры BiFunction, который отображает значения за пределами границ в исключение времени выполнения. Следует проявлять осторожность при использовании таких методов в сочетании с аргументом, который является лямбда-выражением, ссылкой на метод или классом, который захватывает значения. В таких случаях стоимость захвата, связанная с выделением функционального интерфейса, может превысить стоимость проверки границ.
С:
1.7

Методы

Модификатор и тип Метод Описание
static int checkFromIndexSize​(int fromIndex, int size, int length)

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

static int checkFromToIndex​(int fromIndex, int toIndex, int length)

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

static int checkIndex​(int index, int 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 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, возвращается 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

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, и в противном случае возвращает не-null значение supplier.get().

Параметры типа:
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

© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Objects.html

Spec-Zone .ru
спецификации, руководства, описания, API