บทนำสู่คลาส ObjectUtils

วิธีการ:

allNotNull(Object...values) ตรวจสอบว่าวัตถุทั้งหมดไม่เป็นโมฆะ
allNull(วัตถุ...ค่า) ตรวจสอบว่าวัตถุทั้งหมดเป็นค่าว่าง
anyNotNull(วัตถุ...ค่า) ตรวจสอบว่าอย่างน้อยหนึ่งวัตถุไม่เป็นโมฆะ
anyNull(ค่าวัตถุ...) ตรวจสอบว่าอย่างน้อยหนึ่งวัตถุเป็นโมฆะ
โคลน (T obj) โคลนวัตถุ
โคลนถ้าเป็นไปได้ (T obj) โคลนวัตถุหรือส่งคืนต้นฉบับ
เปรียบเทียบ(T c1, T c2) เปรียบเทียบวัตถุ
defaultIfNull(วัตถุ T, T defaultValue) ส่งคืนวัตถุเริ่มต้นหากวัตถุเป็นโมฆะ
เท่ากับ (วัตถุ object1, วัตถุ object2) เปรียบเทียบสองวัตถุ
ไม่เท่ากัน (วัตถุ object1, วัตถุ object2) ตรวจสอบว่าวัตถุสองชิ้นไม่เท่ากันหรือไม่
firstNonNull(T...ค่า) ส่งกลับวัตถุแรกที่ไม่เป็นโมฆะ
getFirstNonNull (ซัพพลายเออร์ ...ซัพพลายเออร์) ส่งกลับวัตถุแรกที่ไม่เป็นโมฆะ
getIfNull(วัตถุ T, ซัพพลายเออร์ DefaultSupplier) ส่งคืนออบเจกต์ที่กำหนดหากไม่เป็นค่าว่าง มิฉะนั้นจะส่งคืนค่า Supplier.get() ของซัพพลายเออร์ที่ผ่าน
รหัสแฮช (obj) คำนวณ hashCode สำหรับวัตถุ
hashCodeMulti(วัตถุ...วัตถุ) คำนวณ hashCode สำหรับกลุ่มของวัตถุ
isEmpty (วัตถุวัตถุ) ตรวจสอบว่าวัตถุว่างเปล่าหรือเป็นโมฆะ
isNotEmpty (วัตถุวัตถุ) ตรวจสอบว่าวัตถุไม่ว่างเปล่าหรือเป็นค่าว่าง
ต้องการNonEmpty(T obj) ตรวจสอบว่าออบเจกต์ไม่เป็นโมฆะหรือไม่ มิฉะนั้นจะส่งข้อยกเว้น
needNonEmpty (T obj ข้อความสตริง) ตรวจสอบว่าออบเจกต์ไม่เป็นโมฆะหรือไม่ มิฉะนั้นจะส่งข้อยกเว้น
identityToString (วัตถุวัตถุ) ส่งกลับสตริงสำหรับวัตถุ
toString (วัตถุ obj) ส่งกลับสตริงสำหรับวัตถุ
toString(Object obj, String nullStr) ส่งกลับสตริงสำหรับวัตถุ
toString(Object obj, ซัพพลายเออร์ ผู้จัดหา) ส่งกลับสตริงสำหรับวัตถุ

ลองดูหนึ่งวิธีจากแต่ละกลุ่ม ฉันหวังว่าคุณจะใช้มันบ่อยๆ เพราะมันสะดวกมากและช่วยให้คุณหลีกเลี่ยงโค้ดที่ไม่จำเป็นได้

ObjectUtils.compare()

วิธีการเปรียบเทียบวัตถุในลักษณะเดียวกับตัวเปรียบเทียบ: มากกว่า น้อยกว่า หรือเท่ากับ สามารถใช้เพื่อจัดเรียงวัตถุ

ลายเซ็นวิธีการมีลักษณะดังนี้:

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 ) เป็นจริงค่า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()ตรวจสอบว่าวัตถุที่ส่งไปยังวัตถุนั้นไม่ว่างเปล่าหรือเป็นค่าว่าง

ลายเซ็นวิธีการ:

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 (วัตถุ obj) ตรวจสอบว่าออบเจกต์ไม่เป็นโมฆะหรือไม่
toString (วัตถุ) แปลงวัตถุเป็นสตริง
toString(Objecto, String nullDefault) แปลงวัตถุเป็นสตริง
บูลีนเท่ากับ (วัตถุ a, วัตถุ b) เปรียบเทียบวัตถุ
บูลีน deepEquals (Object a, Object b) เปรียบเทียบวัตถุ
T needNonNull(T obj) ตรวจสอบว่าพารามิเตอร์ที่ส่งผ่านไม่เป็นค่าว่างหรือไม่
T needNonNull(T obj,ข้อความสตริง) ตรวจสอบว่าพารามิเตอร์ที่ส่งผ่านไม่เป็นค่าว่างหรือไม่
int hashCode (วัตถุ o) คำนวณ hashCode สำหรับวัตถุ
แฮช int (วัตถุ ... ค่า) คำนวณ hashCode สำหรับกลุ่มของวัตถุ
int เปรียบเทียบ (T a, T b, ตัวเปรียบเทียบ c) เปรียบเทียบวัตถุ

เนื่องจาก คลาส java.util.Objectsเป็นส่วนหนึ่งของ JDK ขอแนะนำให้คุณใช้ในโค้ดของคุณ

โปรดทราบว่าเมื่อคุณอ่านโค้ดของผู้อื่น คุณอาจเจอตัวเลือกจากObjectUtilsซึ่งมักเกิดขึ้นในโอเพ่นซอร์ส คุณสามารถดูความแตกต่างได้ ที่นี่