Ổi - Tổng quan
Ổi là gì?
Guava là một thư viện mã nguồn mở, dựa trên Java và chứa nhiều thư viện cốt lõi của Google, đang được sử dụng trong nhiều dự án của họ. Nó tạo điều kiện cho các phương pháp mã hóa tốt nhất và giúp giảm các lỗi mã hóa. Nó cung cấp các phương thức tiện ích cho bộ sưu tập, bộ nhớ đệm, hỗ trợ nguyên thủy, đồng thời, chú thích chung, xử lý chuỗi, I / O và xác nhận.
Lợi ích của Ổi
Standardized - Thư viện Guava được quản lý bởi Google.
Efficient - Đây là một phần mở rộng đáng tin cậy, nhanh chóng và hiệu quả cho thư viện chuẩn Java.
Optimized - Thư viện được tối ưu hóa cao.
Functional Programming - Nó bổ sung khả năng xử lý chức năng cho Java.
Utilities - Nó cung cấp nhiều lớp tiện ích thường xuyên được yêu cầu trong việc phát triển ứng dụng lập trình.
Validation - Nó cung cấp một cơ chế xác nhận an toàn dự phòng tiêu chuẩn.
Best Practices - Nó nhấn mạnh vào các phương pháp hay nhất.
Hãy xem xét đoạn mã sau.
public class GuavaTester {
public static void main(String args[]) {
GuavaTester guavaTester = new GuavaTester();
Integer a = null;
Integer b = new Integer(10);
System.out.println(guavaTester.sum(a,b));
}
public Integer sum(Integer a, Integer b) {
return a + b;
}
}
Chạy chương trình để nhận được kết quả sau.
Exception in thread "main" java.lang.NullPointerException
at GuavaTester.sum(GuavaTester.java:13)
at GuavaTester.main(GuavaTester.java:9)
Sau đây là các vấn đề với mã.
sum () không quan tâm đến bất kỳ tham số nào được truyền dưới dạng null.
hàm người gọi cũng không phải lo lắng về việc vô tình truyền null cho phương thức sum ().
Khi chương trình chạy, NullPointerException xảy ra.
Để tránh các vấn đề trên, kiểm tra vô hiệu phải được thực hiện ở mỗi và mọi nơi có vấn đề như vậy.
Chúng ta hãy xem việc sử dụng Tùy chọn, một lớp Tiện ích do Guava cung cấp, để giải quyết các vấn đề trên theo cách chuẩn hóa.
import com.google.common.base.Optional;
public class GuavaTester {
public static void main(String args[]) {
GuavaTester guavaTester = new GuavaTester();
Integer invalidInput = null;
Optional<Integer> a = Optional.of(invalidInput);
Optional<Integer> b = Optional.of(new Integer(10));
System.out.println(guavaTester.sum(a,b));
}
public Integer sum(Optional<Integer> a, Optional<Integer> b) {
return a.get() + b.get();
}
}
Chạy chương trình để nhận được kết quả sau.
Exception in thread "main" java.lang.NullPointerException
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210)
at com.google.common.base.Optional.of(Optional.java:85)
at GuavaTester.main(GuavaTester.java:8)
Chúng ta hãy hiểu các khái niệm quan trọng của chương trình trên.
Optional - Một lớp tiện ích, để làm cho mã sử dụng null đúng cách.
Optional.of- Nó trả về thể hiện của lớp Tùy chọn được sử dụng như một tham số. Nó kiểm tra giá trị được truyền, không được 'null'.
Optional.get - Nó nhận giá trị của đầu vào được lưu trữ trong lớp Tùy chọn.
Sử dụng lớp Tùy chọn, bạn có thể kiểm tra xem phương thức người gọi có truyền một tham số thích hợp hay không.