Skip to content

Instantly share code, notes, and snippets.

@NikichXP
Created September 4, 2019 15:01
Show Gist options
  • Save NikichXP/db0c55f57a972aaaaa36d8ec95c7ed1c to your computer and use it in GitHub Desktop.
Save NikichXP/db0c55f57a972aaaaa36d8ec95c7ed1c to your computer and use it in GitHub Desktop.
import java.util.*;
import java.util.function.*;
class OptionalHelper<A> {
private List<Supplier<A>> suppliers = new LinkedList<>();
private OptionalHelper() {}
public static <A> OptionalHelper<A> of(Supplier<A> supplier) {
val helper = new OptionalHelper<A>();
helper.suppliers.add(supplier);
return helper;
}
public OptionalHelper<A> orElse(Supplier<A> supplier) {
suppliers.add(supplier);
return this;
}
public A get() {
for (val supplier : suppliers) {
val result = supplier.get();
if (result != null) {
return result;
}
}
return null;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment