Optional.of method takes an element and return Optional with the specified element. If the given element is null, then Optional.of method throws NullPointerException.
Optional.ofNullable method takes an element and return Optional with the specified element. If the given element is null, then Optional.ofNullable method return empty optional.
If the element is not null, then both Optional.of and Optional.ofNullable behavior is same. But in case of null, Optional.of throws NullPointerException, whereas Optional.ofNullable return empty Optional.
App.java
package com.sample.app;
import java.util.NoSuchElementException;
import java.util.Optional;
public class App {
public static void main(String args[]) {
String str = "Hello World";
Optional<String> optionalOf = Optional.of(str);
Optional<String> optionalNullable = Optional.ofNullable(str);
System.out.println("For non null value");
System.out.println("\toptionalOf1 : " + optionalOf.get());
System.out.println("\toptionalNullable : " + optionalNullable.get());
str = null;
System.out.println("\nFor null value");
try {
optionalOf = Optional.of(str);
} catch (NullPointerException e) {
System.out.println("\tNullPointerException thrown for 'Optional.of' method");
}
optionalNullable = Optional.ofNullable(str);
try {
System.out.println("optionalNullable : " + optionalNullable.get());
} catch (NoSuchElementException e) {
System.out.println("\tNoSuchElementException thrown for 'optionalNullable.get()' method");
}
}
}
Output
For non null value optionalOf1 : Hello World optionalNullable : Hello World For null value NullPointerException thrown for 'Optional.of' method NoSuchElementException thrown for 'optionalNullable.get()' method
No comments:
Post a Comment