Giới thiệu về lớp ObjectUtils

phương pháp:

allNotNull(Đối tượng...giá trị) Kiểm tra xem tất cả các đối tượng không phải là null
allNull(Đối tượng...giá trị) Kiểm tra xem tất cả các đối tượng là null
anyNotNull(Đối tượng...giá trị) Kiểm tra xem ít nhất một đối tượng không phải là null
anyNull(Đối tượng... giá trị) Kiểm tra ít nhất một đối tượng là null
bản sao (T obj) Nhân bản một đối tượng
cloneIfPossible(T obj) Nhân bản một đối tượng hoặc trả về bản gốc
so sánh(T c1, T c2) So sánh các đối tượng
defaultIfNull(T đối tượng, T defaultValue) Trả về đối tượng mặc định nếu đối tượng là null
bằng (Đối tượng đối tượng1, Đối tượng đối tượng2) So sánh hai đối tượng
notEqual(Đối tượng đối tượng1, Đối tượng đối tượng2) Kiểm tra xem hai đối tượng không bằng nhau
firstNonNull(T...giá trị) Trả về đối tượng đầu tiên không phải là null
getFirstNonNull(Nhà cung cấp ... các nhà cung cấp) Trả về đối tượng đầu tiên không phải là null
getIfNull(T đối tượng, Nhà cung cấp mặc địnhNhà cung cấp) Trả về đối tượng đã cho nếu nó không phải là null, ngược lại trả về giá trị Nhà cung cấp.get() của Nhà cung cấp đã truyền
mã băm (obj) Tính toán mã băm cho một đối tượng
hashCodeMulti(Đối tượng... đối tượng) Tính toán mã băm cho một nhóm đối tượng
isEmpty(Đối tượng đối tượng) Kiểm tra xem một đối tượng trống hay rỗng
isNotEmpty(Đối tượng đối tượng) Kiểm tra xem một đối tượng không trống hoặc rỗng
requireNonEmpty(T obj) Kiểm tra xem một đối tượng có phải là null hay không, nếu không thì ném ra một ngoại lệ
requireNonEmpty(T obj, Thông báo chuỗi) Kiểm tra xem một đối tượng có phải là null hay không, nếu không thì ném ra một ngoại lệ
idToString(Đối tượng đối tượng) Trả về một chuỗi cho một đối tượng
toString(Đối tượng đối tượng) Trả về một chuỗi cho một đối tượng
toString(Đối tượng obj, Chuỗi nullStr) Trả về một chuỗi cho một đối tượng
toString(Đối tượng đối tượng, Nhà cung cấp nhà cung cấp) Trả về một chuỗi cho một đối tượng

Hãy xem xét một phương pháp từ mỗi nhóm. Tôi hy vọng bạn sẽ sử dụng chúng thường xuyên, bởi vì chúng rất tiện lợi và cho phép bạn tránh phải viết mã không cần thiết.

ObjectUtils.so sánh ()

Phương thức này so sánh các đối tượng giống như phương thức so sánh: lớn hơn, nhỏ hơn hoặc bằng. Nó có thể được sử dụng để sắp xếp các đối tượng.

Chữ ký phương thức trông như thế này:

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

Nếu tham số thứ ba ( nullGreater ) là true , thì null sẽ luôn được coi là lớn hơn non- null . Phương thức trả về giá trị dương nếu c1> c2, giá trị âm nếu c1<c2 và 0 nếu c1 == c2.

Ví dụ:

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

Chương trình sẽ hiển thị kết quả:

0
1
-8

ObjectUtils.isNotEmpty()

Phương thức isNotEmpty() kiểm tra xem đối tượng được truyền cho nó có rỗng hay không .

Chữ ký phương thức:

public static boolean isNotEmpty(final Object object)

Ví dụ:

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

Kết quả sẽ được hiển thị trên màn hình:

false
true
false

java.util.Objects

Các nhà phát triển Java thực sự thích ý tưởng về ObjectUtils , vì vậy trong JDK 7, họ đã thêm ý tưởng của riêng mình:

isNull(Objectobj) Kiểm tra nếu một đối tượng là null
nonNull(Đối tượng đối tượng) Kiểm tra nếu một đối tượng không phải là null
toString(Objecto) Chuyển đổi một đối tượng thành một chuỗi
toString(Objecto, String nullDefault) Chuyển đổi một đối tượng thành một chuỗi
boolean bằng (Đối tượng a, Đối tượng b) So sánh các đối tượng
boolean deepEquals(Đối tượng a,Đối tượng b) So sánh các đối tượng
T yêu cầuNonNull(T obj) Kiểm tra xem tham số đã truyền có phải là null không
T requireNonNull(T obj,Thông điệp chuỗi) Kiểm tra xem tham số đã truyền có phải là null không
int hashCode(Object o) Tính toán mã băm cho một đối tượng
int hash(Đối tượng...giá trị) Tính toán mã băm cho một nhóm đối tượng
so sánh int(T a,T b,So sánh c) So sánh các đối tượng

Vì lớp java.util.Objects là một phần của JDK nên bạn nên sử dụng nó trong mã của mình.

Điều quan trọng cần lưu ý là khi bạn đọc mã của người khác, rất có thể bạn sẽ bắt gặp các tùy chọn từ ObjectUtils , điều này thường xảy ra trong mã nguồn mở. Ở đây bạn có thể thấy chúng khác nhau như thế nào.