Класс 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 |
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 Note:
- Этот метод предназначен для использования в качестве
Predicate,filter(Objects::nonNull). - Parameters:
-
obj- ссылка, которая должна быть проверена наnull - Returns:
-
trueесли переданная ссылка неnull, в противном случаеfalse - Since:
- 1.8
- See Also:
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, и в противном случае возвращает значение, полученное от supplier.get(), которое не null. - 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, 2023, 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/21/docs/api/java.base/java/util/Objects.html