Creates a
CheckedFunction4 based on
Examples (w.l.o.g. referring to Function1):
// using a lambda expression
Function1<Integer, Integer> add1 = Function1.of(i -> i + 1);
// using a method reference (, e.g. Integer method(Integer i) { return i + 1; })
Function1<Integer, Integer> add2 = Function1.of(this::method);
// using a lambda reference
Function1<Integer, Integer> add3 = Function1.of(add1::apply);
Caution: Reflection loses type information of lambda references.
// type of a lambda expression
Type<?, ?> type1 = add1.getType(); // (Integer) -> Integer
// type of a method reference
Type<?, ?> type2 = add2.getType(); // (Integer) -> Integer
// type of a lambda reference
Type<?, ?> type3 = add3.getType(); // (Object) -> Object