Trong Java 9, vài phương thức tĩnh: stream(), or(), và ifPresentOrElse() được thêm vào lớp Optional<T>. Việc giới thiệu lớp Optional giải quyết null pointer exception.
Optional.or() trả về Optional mô tả giá trị nếu giá trị hiện có, ngược lại trả về Optional do supplying function tạo ra.
Cú pháp
public Optional<T> or(Supplier<? extends Optional<? extends T>> supplier)
Ví dụ
import java.util.Optional;
import java.util.function.Supplier;
public class OptionalOrTest {
public static void main(String args[]) {
Optional<String> optional = Optional.of("TutorialsPoint");
Supplier<Optional<String>> supplierString = () -> Optional.of("Not Present");
optional = optional.or(supplierString);
optional.ifPresent(x -> System.out.println("Value: " + x));
optional = Optional.empty();
optional = optional.or(supplierString);
optional.ifPresent(x -> System.out.println("Value: " + x));
}
}
Kết quả
Value: TutorialsPoint Value: Not Present