Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Zad4;
- import java.util.NoSuchElementException;
- import java.util.function.Consumer;
- import java.util.function.Function;
- import java.util.function.Predicate;
- public class Maybe<T> {
- private T value;
- private boolean present;
- private Maybe(T value) {
- present = true;
- this.value = value;
- }
- private Maybe() {
- present = false;
- }
- public static <T> Maybe<T> of(T value) {
- if (value == null)
- return new Maybe<>();
- else
- return new Maybe<>(value);
- }
- public void ifPresent(Consumer<T> cons) {
- if (present)
- cons.accept(value);
- }
- public <T, S> Maybe <T> map (Function <T, S> func){
- return Maybe.of(func.apply(value));
- }
- public T get (){
- if(present)
- return value;
- else
- throw new NoSuchElementException("maybe is empty");
- }
- public boolean isPresent(){
- return present;
- }
- public <T> T orElse(T defVal){
- if(present)
- return (T)value;
- else
- return defVal;
- }
- public <T> Maybe filter(Predicate<T> pred){
- if(pred.test((T) this.value))
- return this;
- else
- return new Maybe();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement