ababup1192
2/8/2016 - 10:56 PM

Functional Java memo

Functional Java memo

import java.util.Optional;
import java.util.function.Function;

public class FunctionMain {
    public static void main(String[] args) {
        new FunctionMain();
    }

    public FunctionMain() {
        this.calc(
                4,
                num -> {
                    if (num * 2 > 10) {
                        return 10;
                    } else {
                        return num;
                    }
                });
    }

    public void calc(int in, Function<Integer, Integer> function) {
        getString(in).flatMap(str ->
                getInteger(str).map(function::apply)
        ).ifPresent(System.out::println);
    }

    public Optional<String> getString(int i) {
        if (i > 0 && i < 10) {
            return Optional.of(Integer.valueOf(i).toString());
        } else {
            return Optional.empty();
        }
    }

    public Optional<Integer> getInteger(String s) {
        try {
            return Optional.of(Integer.parseInt(s));
        } catch (Exception e) {
            e.printStackTrace();
            return Optional.empty();
        }
    }

}