summaryrefslogtreecommitdiff
path: root/lib/java/src/org/apache/thrift/Option.java
diff options
context:
space:
mode:
Diffstat (limited to 'lib/java/src/org/apache/thrift/Option.java')
-rw-r--r--lib/java/src/org/apache/thrift/Option.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/java/src/org/apache/thrift/Option.java b/lib/java/src/org/apache/thrift/Option.java
index f02eae046..6b036df96 100644
--- a/lib/java/src/org/apache/thrift/Option.java
+++ b/lib/java/src/org/apache/thrift/Option.java
@@ -19,6 +19,8 @@
package org.apache.thrift;
+import java.util.Optional;
+
/**
* Implementation of the Option type pattern
*/
@@ -54,6 +56,19 @@ public abstract class Option<T> {
return other;
}
}
+
+ /**
+ * Turn this Option into Java 8 Optional type
+ * @return Java 8+ Optional Type
+ */
+ public Optional<T> toOptional() {
+ if (isDefined()) {
+ return Optional.of(get());
+ } else {
+ return Optional.empty();
+ }
+ }
+
/**
* The None type, representing an absent value (instead of "null")
*/