Java 8 – Lớp tùy chọn

0
306

Tùy chọn là một đối tượng vùng chứa được sử dụng để chứa các đối tượng không rỗng. Đối tượng tùy chọn được sử dụng để biểu diễn null với giá trị không có. Lớp này có các phương thức tiện ích khác nhau để tạo điều kiện cho mã xử lý các giá trị là ‘có sẵn’ hoặc ‘không có sẵn’ thay vì kiểm tra các giá trị null. Nó được giới thiệu trong Java 8 và tương tự như tùy chọn trong Guava.

Khai báo lớp học

Sau đây là khai báo cho lớp java.util.Optional <T> –

public final class Optional<T> extends Object

Phương pháp lớp học

Sr.No.Phương pháp & Mô tả
1static <T> Tùy chọn <T> rỗng ()Trả về một phiên bản Tùy chọn trống.
2boolean bằng (Đối tượng đối tượng)Cho biết liệu một số đối tượng khác có “bằng” tùy chọn này hay không.
3Bộ lọc <T> tùy chọn (Vị từ <? Super <T>)Nếu một giá trị hiện diện và giá trị khớp với một vị từ nhất định, nó sẽ trả về một Tùy chọn mô tả giá trị, nếu không thì trả về một Tùy chọn trống.
4<U> Tùy chọn <U> flatMap (Hàm <? Super T, Trình ánh xạ <U>> tùy chọn)Nếu một giá trị có mặt, nó sẽ áp dụng chức năng ánh xạ mang tùy chọn đã cung cấp cho nó, trả về kết quả đó, nếu không sẽ trả về một tùy chọn trống.
5T nhận được ()Nếu một giá trị có trong Tùy chọn này, trả về giá trị, nếu không thì ném NoSuchElementException.
6int hashCode ()Trả về giá trị mã băm của giá trị hiện tại, nếu có hoặc 0 (không) nếu không có giá trị nào.
7void ifPresent (Người tiêu dùng <? super T> người tiêu dùng)Nếu một giá trị có mặt, nó sẽ gọi người tiêu dùng được chỉ định với giá trị, nếu không thì không có gì.
số 8boolean isPresent ()Trả về true nếu có giá trị hiện tại, nếu không trả về false.
9Bản đồ <U> <U> tùy chọn (Hàm <? Super T,? Expand U> mapper)Nếu một giá trị có mặt, hãy áp dụng hàm ánh xạ đã cung cấp cho nó và nếu kết quả khác rỗng, trả về một Tùy chọn mô tả kết quả.
10static <T> Tùy chọn <T> của (giá trị T)Trả về một Tùy chọn với giá trị không rỗng hiện tại đã chỉ định.
11static <T> Tùy chọn <T> ofNullable (giá trị T)Trả về một Tùy chọn mô tả giá trị được chỉ định, nếu không phải null, nếu không trả về một Tùy chọn trống.
12T orElse (T khác)Trả về giá trị nếu có, nếu không trả về giá trị khác.
13T orElseGet (Nhà cung cấp <? Mở rộng T> khác)Trả về giá trị nếu có, nếu không sẽ gọi khác và trả về kết quả của lệnh gọi đó.
14<X mở rộng Throwable> T orElseThrow (Nhà cung cấp <? Kéo dài X> ngoại lệSupplier)Trả về giá trị chứa, nếu có, nếu không sẽ ném ra một ngoại lệ được tạo bởi nhà cung cấp đã cung cấp.
15Chuỗi toString ()Trả về biểu diễn chuỗi không rỗng của Tùy chọn này phù hợp để gỡ lỗi.

Lớp này kế thừa các phương thức từ lớp sau:

  • java.lang.Object

Ví dụ tùy chọn

Tạo chương trình Java sau bằng cách sử dụng bất kỳ trình soạn thảo nào bạn chọn trong C: \> JAVA.

Java8Tester.java

Bản thử trực tiếp

import java.util.Optional;
public class Java8Tester {
public static void main(String args[]) {
Java8Tester java8Tester = new Java8Tester();
Integer value1 = null;
Integer value2 = new Integer(10);
//Optional.ofNullable - allows passed parameter to be null.
Optional<Integer> a = Optional.ofNullable(value1);
//Optional.of - throws NullPointerException if passed parameter is null
Optional<Integer> b = Optional.of(value2);
System.out.println(java8Tester.sum(a,b));
}
public Integer sum(Optional<Integer> a, Optional<Integer> b) {
//Optional.isPresent - checks the value is present or not
System.out.println("First parameter is present: " + a.isPresent());
System.out.println("Second parameter is present: " + b.isPresent());
//Optional.orElse - returns the value if present otherwise returns
//the default value passed.
Integer value1 = a.orElse(new Integer(0));
//Optional.get - gets the value, value should be present
Integer value2 = b.get();
return value1 + value2; } }

Xác minh kết quả

Biên dịch lớp bằng trình biên dịch javac như sau:

C:\JAVA>javac Java8Tester.java

Bây giờ chạy Java8Tester như sau:

C:\JAVA>java Java8Tester

Nó sẽ tạo ra kết quả sau:

First parameter is present: false 
Second parameter is present: true
10

Khóa học Java Full stack (IJFD)

LEAVE A REPLY

Please enter your comment!
Please enter your name here