java
Kelas Opsional diperkenalkan di Java 8 untuk menghindari pemeriksaan nol dan masalah NullPointerException. Di java 9, tiga metode baru ditambahkan untuk meningkatkan fungsinya.
public Stream<T> stream()
Jika ada nilai, ia mengembalikan Aliran berurutan yang hanya berisi nilai itu, jika tidak mengembalikan Aliran kosong.
import java.util.Arrays; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Stream; public class Tester { public static void main(String[] args) { List<Optional<String>> list = Arrays.asList ( Optional.empty(), Optional.of("A"), Optional.empty(), Optional.of("B")); //filter the list based to print non-empty values //if optional is non-empty, get the value in stream, otherwise return empty List<String> filteredList = list.stream() .flatMap(o -> o.isPresent() ? Stream.of(o.get()) : Stream.empty()) .collect(Collectors.toList()); //Optional::stream method will return a stream of either one //or zero element if data is present or not. List<String> filteredListJava9 = list.stream() .flatMap(Optional::stream) .collect(Collectors.toList()); System.out.println(filteredList); System.out.println(filteredListJava9); } }
[A, B] [A, B]
public void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)
Jika ada nilai, lakukan tindakan yang diberikan dengan nilai tersebut, jika tidak, lakukan tindakan berbasis kosong yang diberikan.
import java.util.Optional; public class Tester { public static void main(String[] args) { Optional<Integer> optional = Optional.of(1); optional.ifPresentOrElse( x -> System.out.println("Value: " + x),() -> System.out.println("Not Present.")); optional = Optional.empty(); optional.ifPresentOrElse( x -> System.out.println("Value: " + x),() -> System.out.println("Not Present.")); } }
Value: 1 Not Present.
public Optional<T> or(Supplier<? extends Optional<? extends T>> supplier)
Jika ada nilai, mengembalikan Opsional yang menjelaskan nilai, jika tidak mengembalikan Opsional yang dihasilkan oleh fungsi pemasok.
import java.util.Optional; import java.util.function.Supplier; public class Tester { public static void main(String[] args) { Optional<String> optional1 = Optional.of("Mahesh"); Supplier<Optional<String>> supplierString = () -> Optional.of("Not Present"); optional1 = optional1.or( supplierString); optional1.ifPresent( x -> System.out.println("Value: " + x)); optional1 = Optional.empty(); optional1 = optional1.or( supplierString); optional1.ifPresent( x -> System.out.println("Value: " + x)); } }
Value: Mahesh Value: Not Present
java
Kelas Java BufferedInputStream Dalam tutorial ini, kita akan belajar tentang Java BufferedInputStream dan metodenya dengan bantuan contoh. BufferedInputStream kelas java.io package digunakan dengan aliran input lain untuk membaca data (dalam byte) dengan lebih efisien. Ini memperluas InputStream k
Kelas Java PrintStream Dalam tutorial ini, kita akan belajar tentang kelas Java PrintStream dan metode print() dan printf() dengan bantuan contoh. PrintStream kelas java.io package dapat digunakan untuk menulis data keluaran dalam bentuk (teks) yang dapat dibaca secara umum alih-alih byte. Ini mem
Kelas Pembaca Java Dalam tutorial ini, kita akan belajar tentang Java Reader, subclass-nya dan metodenya dengan bantuan sebuah contoh. Reader kelas java.io package adalah superclass abstrak yang mewakili aliran karakter. Sejak Reader adalah kelas abstrak, itu tidak berguna dengan sendirinya. Namun
Kelas Penulis Java Dalam tutorial ini, kita akan belajar tentang Java Writer, subclass-nya dan metodenya dengan bantuan sebuah contoh. Writer kelas java.io package adalah superclass abstrak yang mewakili aliran karakter. Sejak Writer adalah kelas abstrak, itu tidak berguna dengan sendirinya. Namun