Класс Объекты
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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/Objects.html