- vừa được xem lúc

Tất tần tật về Optional trong java, check Null đơn giản hơn bao giờ hết! P2 (Kết)

0 0 6

Người đăng: Nguyễn Đức Thảo

Theo Viblo Asia

Mở đầu

Hí anh em!

Lại là mình đây, dạo này hơi bận và lười nên cũng chưa viết phần 2 của bài Optional trong java!

Hôm nay Hà Nội lại mưa, nên mình sẽ tiếp tục phần 2 cũng là phần cuối về Optional nhe! bắt đầu thoi!!!

Bắt đầu

VIII. Filter();

Ngay cái tên thì các bạn cũng biết nó làm gì rồi phải không? ví dụ đơn giản về Filter()

@Test
public void checkFilter() { Integer year = 2016; Optional<Integer> yearOptional = Optional.of(year); boolean is2016 = yearOptional.filter(y -> y == 2016).isPresent(); assertTrue(is2016); boolean is2017 = yearOptional.filter(y -> y == 2017).isPresent(); assertFalse(is2017);
}

Rồi bây giờ bắt đầu áp dụng vào bài toán thực tế xem filter hoạt động ra sao nhé!

Mình có 1 đề bài là kiểm tra xem điểm toán có nằm trong khoảng điểm từ A -> B hay không? Nếu có thì trả ra true và false nếu ngược lại!

Oke bắt đầu với từng trường hợp nhé!

Tạo một đối tượng là Poin và thuộc tính là math

@Data
@AllArgsConstructor
public class Poin { private Double math;
}

ở đây mình có dùng Lombook để tự động genarate contructor và setter,getter

Tiếp theo mình tạo một class cho chứa method checkMath. Giả sử mình muốn kiểm tra điểm toán có nằm tròn khoảng từ 5 -> 8 hay không?

 Boolean check = false; public Boolean checkMath(Poin poin){ if(poin != null && poin.getMath() != null && poin.getMath() > 5 && poin.getMath() < 8){ return check = true; } return check; }

Oke giờ chúng ta test cái method này xem sao nhé!

 @Test public void testCheckMath() { assertTrue(priceAvg(new Poin(7.1))); }

Các bạn tự run và xem kết quả nhé!

Trên là cách check if bình thường mà chúng ta hay làm, vậy giờ hãy sử dụng Filter của Optional xem sao nhé!

 public Boolean checkMath(Poin poin){ return Optional.ofNullable(poin) .map(poin::getMath) .filter(f -> f < 5) .filter(f -> f > 8) .isPresent(); }

rồi các bạn chạy lại hàm test bên trên để xme kết quả nhé!

IX.map();

Ở ví dụ trên chúng ta thấy có map(), vậy để xem map này để làm gì nhé!

@Test
public void optionWithMap() { List<String> companyNames = Arrays.asList( "paypal", "oracle", "", "microsoft", "", "apple"); Optional<List<String>> listOptional = Optional.of(companyNames); int size = listOptional .map(List::size) .orElse(0); assertEquals(6, size);
}

nhìn ví dụ trên thì điều cái chúng ta quan tâm nhất là dấu " :: " này đúng không, đơn giản là nó dùng để tham chiếu đến các method của chính nó -> nó ở đây là List

Hay kết hợp map() với Filter() để có được hiểu năng tốt nhất nhé!

Kết

Như vậy chúng ta đã đi qua nhưng method của Optional rồi. Hãy app dụng nó vào những bài toán hàng ngày nhé! Hẹn gặp lại các bạn vào bài viết sau nhé. Thanks fo watch!

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tổng hợp các bài hướng dẫn về Design Pattern - 23 mẫu cơ bản của GoF

Link bài viết gốc: https://gpcoder.com/4164-gioi-thieu-design-patterns/. Design Patterns là gì. Design Patterns không phải là ngôn ngữ cụ thể nào cả.

0 0 270

- vừa được xem lúc

Học Spring Boot bắt đầu từ đâu?

1. Giới thiệu Spring Boot. 1.1.

0 0 255

- vừa được xem lúc

Cần chuẩn bị gì để bắt đầu học Java

Cần chuẩn bị những gì để bắt đầu lập trình Java. 1.1. Cài JDK hay JRE.

0 0 35

- vừa được xem lúc

Sử dụng ModelMapper trong Spring Boot

Bài hôm nay sẽ là cách sử dụng thư viện ModelMapper để mapping qua lại giữa các object trong Spring nhé. Trang chủ của ModelMapper đây http://modelmapper.org/, đọc rất dễ hiểu dành cho các bạn muốn tìm hiểu sâu hơn. 1.

0 0 179

- vừa được xem lúc

[Java] 1 vài tip nhỏ khi sử dụng String hoặc Collection part 1

. Hello các bạn, hôm nay mình sẽ chia sẻ về mẹo check String null hay full space một cách tiện lợi. Mình sẽ sử dụng thư viện Lớp StringUtils download file jar để import vào thư viện tại (link).

0 0 55

- vừa được xem lúc

Deep Learning với Java - Tại sao không?

Muốn tìm hiểu về Machine Learning / Deep Learning nhưng với background là Java thì sẽ như thế nào và bắt đầu từ đâu? Để tìm được câu trả lời, hãy đọc bài viết này - có thể kỹ năng Java vốn có sẽ giúp bạn có những chuyến phiêu lưu thú vị. DJL là tên viết tắt của Deep Java Library - một thư viện mã ng

0 0 122