Въведение в класа ObjectUtils
Методи:
allNotNull(Обект...стойности) | Проверява дали всички обекти не са нулеви |
allNull(Обект...стойности) | Проверява дали всички обекти са нулеви |
anyNotNull(Обект...стойности) | Проверява дали поне един обект не е нулев |
anyNull(Обект... стойности) | Проверява дали поне един обект е нула |
клонинг (T obj) | Клонира обект |
cloneIfPossible(T obj) | Клонира обект or връща оригинала |
сравнение (T c1, T c2) | Сравнява обекти |
defaultIfNull(T обект, T defaultValue) | Връща обекта по подразбиране, ако обектът е нула |
равно (обект обект1, обект обект2) | Сравнява два обекта |
notEqual(Object object1, Object object2) | Проверете дали два обекта не са еднакви |
firstNonNull(T...стойности) | Връща първия обект, който не е нула |
getFirstNonNull(Доставчик |
Връща първия обект, който не е нула |
getIfNull(T обект, Доставчик |
Връща дадения обект, ако не е null, в противен случай връща стойността Supplier.get() на предадения Supplier |
hashCode(obj) | Изчислява hashCode за обект |
hashCodeMulti(Обект... обекти) | Изчислява hashCode за група обекти |
isEmpty (обект обект) | Проверява дали даден обект е празен or нулев |
isNotEmpty(обект обект) | Проверява дали даден обект не е празен or нулев |
requireNonEmpty(T obj) | Проверява дали даден обект не е null, в противен случай хвърля изключение |
requireNonEmpty(T obj, String message) | Проверява дали даден обект не е null, в противен случай хвърля изключение |
identityToString(обект обект) | Връща низ за обект |
toString(Object obj) | Връща низ за обект |
toString(Object obj, String nullStr) | Връща низ за обект |
toString(Object obj, Supplier |
Връща низ за обект |
Нека разгледаме по един метод от всяка група. Надявам се, че ще ги използвате често, защото са много удобни и ви позволяват да избегнете ненужния code.
ObjectUtils.compare()
Методът сравнява обекти по същия начин като comparator: по-голямо от, по-малко от or равно на. Може да се използва за сортиране на обекти.
Сигнатурата на метода изглежда така:
public static <T extends Comparable<? super T>> int compare(final T c1, final T c2);
public static <T extends Comparable<? super T>> int compare(final T c1, final T c2, final boolean nullGreater);
Ако третият параметър ( nullGreater ) е true , тогава null винаги ще се счита за по-голям от не- null . Методът връща положително, ако c1> c2, отрицателно, ако c1<c2, и 0, ако c1 == c2.
Пример:
String firstValue = "codeGym";
String secondValue = "codeGym";
System.out.print(ObjectUtils.compare(firstValue, secondValue));
System.out.println();
firstValue = "codeGym";
secondValue = null;
System.out.print(ObjectUtils.compare(firstValue, secondValue));
System.out.println();
firstValue = "";
secondValue = "codeGym";
System.out.print(ObjectUtils.compare(firstValue, secondValue));
System.out.println();
Програмата ще покаже резултата:
0
1
-8
ObjectUtils.isNotEmpty()
Методът isNotEmpty() проверява дали предаваният му обект не е нито празен, нито null .
Сигнатура на метода:
public static boolean isNotEmpty(final Object object)
Пример:
List<String> values = new ArrayList<>();
System.out.println(ObjectUtils.isNotEmpty(values));
values.add("codeGym");
System.out.println(ObjectUtils.isNotEmpty(values));
values = null;
System.out.println(ObjectUtils.isNotEmpty(values));
Резултатът ще се покаже на екрана:
false
true
false
java.util.Objects
Разработчиците на Java наистина харесаха идеята за ObjectUtils , така че в JDK 7 те добавиха своя собствена:
isNull(Objectobj) | Проверява дали даден обект е нула |
nonNull(Object obj) | Проверява дали даден обект не е нула |
toString(Objecto) | Преобразува обект в низ |
toString(Objecto, String nullDefault) | Преобразува обект в низ |
булево равно (обект a, обект b) | Сравнява обекти |
boolean deepEquals(Object a,Object b) | Сравнява обекти |
T requireNonNull(T obj) | Проверява дали предаденият параметър не е нула |
T requireNonNull(T obj,String message) | Проверява дали предаденият параметър не е нула |
int hashCode(Object o) | Изчислява hashCode за обект |
int хеш (обект...стойности) | Изчислява hashCode за група обекти |
int compare(T a,T b,Comparator c) | Сравнява обекти |
Тъй като класът java.util.Objects е част от JDK, се препоръчва да го използвате във вашия code.
Важно е да се отбележи, че когато четете codeа на някой друг, най-вероятно ще срещнете опции от ObjectUtils , това често се случва в отворен code. Тук можете да видите How се различават.
GO TO FULL VERSION