JavaRush /Kurslar /All lectures for UZ purposes /Apache Commons’dan ObjectUtils klassi

Apache Commons’dan ObjectUtils klassi

All lectures for UZ purposes
Daraja, Dars
Mavjud

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.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION