OK, khởi đầu nào những bạn …
Đối tượng Optional là một đối tượng generic, nó là một container cho một object reference. Điều này có nghĩa, bạn khai báo một biến tham chiếu tới một đối tượng, biến này có thể đã được khởi tạo hoặc chưa khởi tạo, và đối tượng Optional này sẽ chứa biến tham chiếu này.
Chúng ta hoàn toàn có thể xem Optional như thể một stream có chứa 0 hoặc 1 thành phần là một object reference, 0 nếu object reference của tất cả chúng ta bị null, 1 nếu object reference của tất cả chúng ta đã được khởi tạo .
Điều này sẽ bảo vệ là khi những bạn sử dụng biến tham chiếu của tất cả chúng ta trải qua đối tượng người dùng Optional, giá trị trả về sẽ do đối tượng người dùng Optional quản trị và do đó giá trị của biến tham chiếu này sẽ không khi nào bị null .
Bây giờ, mình sẽ lấy một ví dụ để những bạn tưởng tượng cách sử dụng đối tượng người tiêu dùng Optional nhé những bạn !
Giả sử mình có một phương pháp dùng để lấy ngày sinh của một sinh viên dựa vào id mà mình truyền vào, sau khi giải quyết và xử lý một số ít trường hợp, trường hợp sau cuối method này trả về null. Cụ thể phương pháp đó như sau :
1234 |
publicDategetDateOfBirth(intstudentId){ / / Do something returnnull; } |
Bây giờ, mình sẽ sử dụng method này và không may là nó trả về null và mình bị NPE .
Trong trường hợp này, mình hoàn toàn có thể sử dụng đối tượng người dùng Optional để handle trường hợp NullPointerException như sau :
123456789101112131415161718 |
packagecom.huongdanjava; importjava.util.Date; importjava.util.Optional; publicclassExample{
publicDategetDateOfBirth ( Xem thêm: Extends Trong Java – Techacademy intstudentId){ / / Do something returnnull; } publicstaticvoidmain(String[]args){ Examplee=newExample(); Optional date=Optional.ofNullable(e.getDateOfBirth(1)); date.ifPresent(d->System.out.println(d.getDate())); } } |
Trong ví dụ này, mình đã khởi tạo một đối tượng người tiêu dùng Optional chứa một biến tham chiếu đến kiểu tài liệu Date, biến tham chiếu này hoàn toàn có thể null hoặc không tùy vào giá trị của phương pháp getDateOfBirth ( ) .
Và ở đoạn code dưới, mình sử dụng phương pháp ifPresent của đối tượng người tiêu dùng Optional với Lambda Expression để in ra ngày trong trường hợp biến tham chiếu này khác null .
Thử chạy ví dụ này, các bạn sẽ thấy không còn lỗi NPE xuất hiện nữa.
1.6 / 5 – ( 14 bầu chọn )
Source: https://final-blade.com
Category: Kiến thức Internet