-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJSR335Optional.java
55 lines (41 loc) · 1.85 KB
/
JSR335Optional.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package JSR335;
import java.util.Optional;
public class JSR335Optional {
public static void main(String[] args) {
// https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html
// Is there a JEP for Optional?
// https://stackoverflow.com/questions/70724741/is-there-a-jep-for-optional
Optional<JSR335OptionalPerson> empty = Optional.empty();
/*
Optional<Person> ofNull = Optional.of(null);
Exception in thread "main" java.lang.NullPointerException
at java.base/java.util.Objects.requireNonNull(Objects.java:208)
at java.base/java.util.Optional.of(Optional.java:113)
at optional.Main.main(Main.java:8)
* */
JSR335OptionalPerson samplePerson = new JSR335OptionalPerson("Ibrahim");
Optional<JSR335OptionalPerson> person = Optional.of(samplePerson);
Optional<JSR335OptionalPerson> ofNullable = Optional.ofNullable(null);
if (ofNullable.isPresent()) {
System.out.println("ofNullable variable is not a null");
} else {
System.out.println("ofNullable variable is a null");
}
ofNullable.ifPresent(p -> System.out.println(p));
Optional<Integer> optionalNumber = Optional.ofNullable(null);
Integer number01 = optionalNumber.orElse(1919);
/*
Integer number02 = optionalNumber.orElseThrow(NumberFormatException::new);
Exception in thread "main" java.lang.NumberFormatException
at java.base/java.util.Optional.orElseThrow(Optional.java:403)
at optional.Main.main(Main.java:24)
* */
JSR335OptionalPerson newInstance = ofNullable.orElseGet(()-> new JSR335OptionalPerson("Aslı"));
}
}
class JSR335OptionalPerson {
public String name;
public JSR335OptionalPerson(String name) {
this.name = name;
}
}