ObjectUtils klassi bilan tanishuv
Metodlar:
| allNotNull(Object... values) | Barcha obyektlar null emasligini tekshiradi |
| allNull(Object... values) | Barcha obyektlar null ga tengligini tekshiradi |
| anyNotNull(Object... values) | Hech bo'lmaganda bitta obyekt null emasligini tekshiradi |
| anyNull(Object... values) | Hech bo'lmaganda bitta obyekt null ekanligini tekshiradi |
| clone(T obj) | Obyektni klonlaydi |
| cloneIfPossible(T obj) | Obyektni klonlaydi yoki originalni qaytaradi |
| compare(T c1, T c2) | Obyektlarni solishtiradi |
| defaultIfNull(T object, T defaultValue) | Agar object null ga teng bo'lsa default obyektni qaytaradi |
| equals(Object object1, Object object2) | Ikki obyektni solishtiradi |
| notEqual(Object object1, Object object2) | Ikki obyekt teng emasligini tekshiradi |
| firstNonNull(T... values) | Birinchi null bo'lmagan obyektni qaytaradi |
| getFirstNonNull(Supplier ... suppliers) | Birinchi null bo'lmagan obyektni qaytaradi |
| getIfNull(T object, Supplier defaultSupplier) | Agar obyekt null bo'lsa, Supplier.get() qiymatini qaytaradi |
| hashCode(Object obj) | Obyekt uchun hashCode ni hisoblaydi |
| hashCodeMulti(Object... objects) | Obyektlar guruhini hashCode ni hisoblaydi |
| isEmpty(Object object) | Obyekt empty yoki null ekanligini tekshiradi |
| isNotEmpty(Object object) | Obyekt empty yoki null emasligini tekshiradi |
| requireNonEmpty(T obj) | Obyekt null emasligini tekshiradi, aks holda istisno otiladi |
| requireNonEmpty(T obj, String message) | Obyekt null emasligini tekshiradi, aks holda istisno otiladi |
| identityToString(Object object) | Obyekt uchun stringni qaytaradi |
| toString(Object obj) | Obyekt uchun stringni qaytaradi |
| toString(Object obj, String nullStr) | Obyekt uchun stringni qaytaradi |
| toString(Object obj, Supplier supplier) | Obyekt uchun stringni qaytaradi |
Keling, har bir guruhdan bitta metodni ko'rib chiqamiz. Ishonchim komilki, sen ularni ko'p ishlatasan, chunki ular juda qulay va ortiqcha kodni oldini olishga yordam beradi.
ObjectUtils.compare()
Metod obyektlarni comparator prinsipi bo'yicha solishtiradi: katta, kichik yoki teng. Uni obyektlarni saralash uchun ishlatish mumkin.
Metodning signaturasi quyidagi ko'rinishga ega:
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);
Agar uchinchi parametr (nullGreater) true ga teng bo'lsa, unda null har doim null bo'lmaganidan katta hisoblanadi. Metod pozitiv qiymat qaytaradi, agar c1> c2, negativ, agar c1<c2, va 0, agar c1 == c2 bo'lsa.
Misol:
String firstValue = "javaRush";
String secondValue = "javaRush";
System.out.print(ObjectUtils.compare(firstValue, secondValue));
System.out.println();
firstValue = "javaRush";
secondValue = null;
System.out.print(ObjectUtils.compare(firstValue, secondValue));
System.out.println();
firstValue = "";
secondValue = "javaRush";
System.out.print(ObjectUtils.compare(firstValue, secondValue));
System.out.println();
Dastur ekranga natijani chiqaradi:
0
1
-8
ObjectUtils.isNotEmpty()
isNotEmpty() metodi berilgan obyektni empty emas va null emasligini tekshiradi.
Metodning signaturasi:
public static boolean isNotEmpty(final Object object)
Misol:
List<String> values = new ArrayList<>();
System.out.println(ObjectUtils.isNotEmpty(values));
values.add("javaRush");
System.out.println(ObjectUtils.isNotEmpty(values));
values = null;
System.out.println(ObjectUtils.isNotEmpty(values));
Ekranga quyidagi natija chiqadi:
false
true
false
java.util.Objects
Java ishlab chiquvchilariga ObjectUtils g'oyasi juda yoqdi, shuning uchun JDK 7 da o'z variantlarini qo'shdilar:
| isNull(Object obj) | Obyekt null ga tengligini tekshiradi |
| nonNull(Object obj) | Obyekt null ga teng emasligini tekshiradi |
| toString(Object o) | Obyektni stringga aylantiradi |
| toString(Object o, String nullDefault) | Obyektni stringga aylantiradi |
| boolean equals(Object a,Object b) | Obyektlarni solishtiradi |
| boolean deepEquals(Object a,Object b) | Obyektlarni solishtiradi |
| T requireNonNull(T obj) | Berilgan parametr null emasligini tekshiradi |
| T requireNonNull(T obj,String message) | Berilgan parametr null emasligini tekshiradi |
| int hashCode(Object o) | Obyekt uchun hashCode ni hisoblaydi |
| int hash(Object… values) | Obyektlar guruhi uchun hashCode ni hisoblaydi |
| int compare(T a,T b,Comparator c) | Obyektlarni solishtiradi |
java.util.Objects klassi JDK tarkibiga kirganligi sababli, uni kodda ishlatish tavsiya qilinadi.
Ahamiyatli tomoni shundaki, agar sen boshqa biror kishining kodini o'qisang, ehtimol ObjectUtils dan variantlarga duch kelasan, bu open-source’da tez-tez uchraydi. Mana bu yerda ular qanday farqlanishini ko'rishing mumkin.
GO TO FULL VERSION