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();
}
}
}