Класс Objects
- java.lang.Object
-
- java.util.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) | Проверяет, находится ли поддиапазон с |
static int | checkFromToIndex(int fromIndex,
int toIndex,
int length) | Проверяет, находится ли поддиапазон с |
static int | checkIndex(int index,
int length) | Проверяет, находится ли |
static <T> int | compare(T a,
T b,
Comparator<? super T> c) | Возвращает 0, если аргументы идентичны, и |
static boolean | deepEquals(Object a,
Object b) | Возвращает |
static boolean | equals(Object a,
Object b) | Возвращает |
static int | hash(Object... values) | Генерирует хэш-код для последовательности входных значений. |
static int | hashCode(Object o) | Возвращает хэш-код не- |
static boolean | isNull(Object obj) | Возвращает |
static boolean | nonNull(Object obj) | Возвращает |
static <T> T | requireNonNull(T obj) | Проверяет, что указанная ссылка на объект не |
static <T> T | requireNonNull(T obj,
String message) | Проверяет, что указанная ссылка на объект не |
static <T> T | requireNonNull(T obj,
Supplier<String> messageSupplier) | Проверяет, что указанная ссылка на объект не |
static <T> T | requireNonNullElse(T obj,
T defaultObj) | Возвращает первый аргумент, если он не- |
static <T> T | requireNonNullElseGet(T obj,
Supplier<? extends T> supplier) | Возвращает первый аргумент, если он не- |
static String | toString(Object o) | Возвращает результат вызова |
static String | toString(Object o,
String nullDefault) | Возвращает результат вызова |
Методы, объявленные в классе 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- если обаobjnull, иdefaultObjnull - С:
- 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 < 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
© 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