Pengenalan kepada kelas ObjectUtils

Kaedah:

allNotNull(Objek...nilai) Semak bahawa semua objek tidak batal
allNull(Objek...nilai) Semak bahawa semua objek adalah batal
anyNotNull(Objek...nilai) Semak bahawa sekurang-kurangnya satu objek bukan nol
anyNull(Objek... nilai) Semak bahawa sekurang-kurangnya satu objek adalah batal
klon(T obj) Mengklon objek
cloneIfPossible(T obj) Mengklon objek atau mengembalikan yang asal
bandingkan(T c1, T c2) Membandingkan objek
defaultIfNull(T object, T defaultValue) Mengembalikan objek lalai jika objek adalah nol
sama (objek objek1, objek objek2) Membandingkan dua objek
notEqual(Objek objek1, Objek objek2) Semak sama ada dua objek tidak sama
firstNonNull(T...values) Mengembalikan objek pertama yang bukan nol
getFirstNonNull(Pembekal ... pembekal) Mengembalikan objek pertama yang bukan nol
getIfNull(T objek, Pembekal default Supplier) Mengembalikan objek yang diberikan jika ia bukan nol, sebaliknya mengembalikan nilai Supplier.get() Pembekal yang diluluskan
hashCode(obj) Mengira kod cincang untuk objek
hashCodeMulti(Objek... objek) Mengira Kod cincang untuk sekumpulan objek
isEmpty(objek objek) Semak sama ada objek kosong atau batal
isNotEmpty(objek objek) Semak sama ada objek tidak kosong atau batal
requireNonEmpty(T obj) Menyemak sama ada objek tidak batal, jika tidak, membuang pengecualian
requireNonEmpty(T obj, String message) Menyemak sama ada objek tidak batal, jika tidak, membuang pengecualian
identityToString(objek objek) Mengembalikan rentetan untuk objek
toString(obj objek) Mengembalikan rentetan untuk objek
toString(Obj objek, String nullStr) Mengembalikan rentetan untuk objek
toString(Obj objek, Pembekal pembekal) Mengembalikan rentetan untuk objek

Mari kita lihat satu kaedah daripada setiap kumpulan. Saya harap anda akan menggunakannya dengan kerap, kerana ia sangat mudah dan membolehkan anda mengelakkan kod yang tidak perlu.

ObjectUtils.compare()

Kaedah membandingkan objek dengan cara yang sama seperti pembanding: lebih besar daripada, kurang daripada atau sama dengan. Ia boleh digunakan untuk menyusun objek.

Tandatangan kaedah kelihatan seperti ini:

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);

Jika parameter ketiga ( nullGreater ) adalah benar , maka null akan sentiasa dianggap lebih besar daripada bukan null . Kaedah mengembalikan positif jika c1> c2, negatif jika c1<c2, dan 0 jika c1 == c2.

Contoh:

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();

Program akan memaparkan hasilnya:

0
1
-8

ObjectUtils.isNotEmpty()

Kaedah isNotEmpty() menyemak bahawa objek yang dihantar kepadanya bukan kosong mahupun null .

Tandatangan kaedah:

public static boolean isNotEmpty(final Object object)

Contoh:

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));

Hasilnya akan dipaparkan pada skrin:

false
true
false

java.util.Objects

Pembangun Java sangat menyukai idea ObjectUtils , jadi dalam JDK 7 mereka menambah idea mereka sendiri:

isNull(Objectobj) Menyemak sama ada objek adalah batal
bukanNull(obj objek) Menyemak sama ada objek bukan nol
toString(Objecto) Menukar objek kepada rentetan
toString(Objecto, String nullDefault) Menukar objek kepada rentetan
boolean sama (Objek a, Objek b) Membandingkan objek
boolean deepEquals(Objek a, Objek b) Membandingkan objek
T memerlukanNonNull(T obj) Semak sama ada parameter yang diluluskan bukan nol
T requireNonNull(T obj,String message) Semak sama ada parameter yang diluluskan bukan nol
int hashCode(Objek o) Mengira kod cincang untuk objek
int hash(Objek...nilai) Mengira Kod cincang untuk sekumpulan objek
int compare(T a,T b,Comparator c) Membandingkan objek

Memandangkan kelas java.util.Objects adalah sebahagian daripada JDK, adalah disyorkan agar anda menggunakannya dalam kod anda.

Adalah penting untuk ambil perhatian bahawa apabila anda membaca kod orang lain, kemungkinan besar anda akan menemui pilihan daripada ObjectUtils , ini sering berlaku dalam sumber terbuka. Di sini anda boleh melihat bagaimana mereka berbeza.