Класс 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, в противном случае возвращает не-null значение supplier.get(). |
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, и второй аргумент в противном случае. - См. также:
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 второй аргумент.- 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 < 0index >= 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 < 0fromIndex > toIndextoIndex > 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 < 0size < 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 < 0index >= 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 < 0fromIndex > toIndextoIndex > 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 < 0size < 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