summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiayu Liu <jiayu.liu@airbnb.com>2022-02-21 17:08:00 +0800
committerJens Geyer <Jens-G@users.noreply.github.com>2022-03-09 11:39:48 +0100
commitaa27cdadd00481d1c08dc4fb73e3aaf14d95c07b (patch)
treebcb8a9071f88962a9bcf04fb575b8171323933b0
parent7594da8d7ac8d3525aa736d8fef89e465c63533e (diff)
downloadthrift-aa27cdadd00481d1c08dc4fb73e3aaf14d95c07b.tar.gz
add support for converting to java optional
-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")
*/