Rate this post

Trong Java, Optional là một lớp được cung cấp bởi thư viện Java 8, nó được sử dụng để xử lý các trường hợp khi một giá trị có thể có hoặc không có. Optional là một đối tượng đặc biệt chứa một giá trị hoặc không chứa giá trị, nó giúp cho mã đoạn trở nên dễ đọc và dễ dàng quản lý hơn so với sử dụng null

Các bài viết liên quan:

Ví dụ:

Optional<String> optional = Optional.ofNullable("Hello World!");
if (optional.isPresent()) {
    System.out.println(optional.get());
} else {
    System.out.println("The value is null");
}

Trong ví dụ trên, chúng ta tạo một đối tượng Optional với giá trị “Hello World!”, sau đó kiểm tra xem giá trị có tồn tại hay không bằng phương thức isPresent(), nếu có thì in ra giá trị, ngược lại in ra thông báo “The value is null”.

Phương thức khác của Optional:

  • orElse(T other) : trả về giá trị của Optional, nếu không có giá trị trả về giá trị của tham số.
  • orElseGet(Supplier<? extends T> other): tương tự như trên nhưng giá trị trả về được cung cấp bởi một Supplier.
  • orElseThrow(Supplier<? extends X> exceptionSupplier): trả về giá trị của Optional, nếu không có giá trị ném ra ngoại lệ tự được cung cấp bởi một Supplier của ngoại lệ.
  • ifPresent(Consumer<? super T> consumer): nếu có giá trị thì thực hiện hành động của Consumer.
  • filter(Predicate<? super T> predicate): trả về một Optional mới với giá trị nếu giá trị hiện tại được chấp nhận bởi Predicate.
  • map(Function<? super T,? extends U> mapper): trả về một Optional mới với giá trị được chuyển đổi bởi Function.
  • flatMap(Function<? super T, Optional<U>> mapper): tương tự như map(), nhưng Function trả về một Optional mới.

Với sự hỗ trợ của Optional, chúng ta có thể giảm thiểu sự sử dụng null trong mã đoạn và giảm thiểu rủi ro gây ra lỗi do null pointer exception. Nó cũng giúp cho việc kiểm soát và xử lý các trường hợp giá trị null trong chương trình trở nên dễ dàng hơn.

Một vài ví dụ optional trong java

  1. Tạo một Optional với giá trị cụ thể:
Optional<String> optional = Optional.of("Hello World!");
  1. Tạo một Optional với giá trị null:
Optional<String> optional = Optional.ofNullable(null);
  1. Kiểm tra xem Optional có giá trị hay không:
Optional<String> optional = Optional.of("Hello World!");
if (optional.isPresent()) {
    System.out.println(optional.get());
} else {
    System.out.println("The value is null");
}
  1. Lấy giá trị của Optional hoặc giá trị mặc định:
Optional<String> optional = Optional.ofNullable(null);
String value = optional.orElse("Default Value");
  1. Sử dụng filter() để kiểm tra giá trị trong Optional:
Optional<Integer> optional = Optional.of(5);
optional = optional.filter(n -> n > 0);
if (optional.isPresent()) {
    System.out.println("The value is greater than 0");
} else {
    System.out.println("The value is not greater than 0");
}
  1. Sử dụng map() để chuyển đổi giá trị trong Optional:
Optional<Integer> optional = Optional.of(5);
Optional<String> newOptional = optional.map(n -> "The value is " + n);
  1. Sử dụng flatMap() để chuyển đổi giá trị trong Optional:
Optional<Integer> optional = Optional.of(5);
Optional<String> newOptional = optional.flatMap(n -> Optional.of("The value is " + n));

Các ví dụ trên chỉ là một số ví dụ cơ bản về cách sử dụng Optional trong Java, chúng ta có thể sử dụng nó để xử lý các trường hợp giá trị có thể có hoặc không có trong chương trình.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now