@FunctionalInterface @Generated(value="uk.kludje.annotation.processor.UncheckedFunctionalInterfaceProcessor") public interface UTetraFunction<A,B,C,D,R> extends TetraFunction<A,B,C,D,R>
R $apply(A a, B b, C c, D d) throws Throwable
USING A LAMBDA; INVOKE R apply(A a, B b, C c, D d)
.
A functional interface for handling checked exceptions. See parent type for interface intent.
R apply(A a, B b, C c, D d)
invokes R $apply(A a, B b, C c, D d)
and throws anything thrown by R $apply(A a, B b, C c, D d)
.
General example using java.lang.Runnable
that reduces 11 lines to a single line.
Call someMethodThatThrowsException
in throwsNothing
:
public void someMethodThatThrowsException() throws IOException { // I/O functionality } public void throwsNothing(Runnable r) { r.run(); }
Before:
public void yourMethod() throws IOException { try { throwsNothing(() -> { try { someMethodThatThrowsException(); } catch (IOException e) { throw new SomeWrapperException(e); } }); } catch(SomeWrapperException w) { throw (IOException) w.getCause(); } }
After:
public void yourMethod() throws IOException { throwsNothing((URunnable) this::someMethodThatThrowsException); }
Method public static <A, B, C, D, R> UTetraFunction<A, B, C, D, R> asUTetraFunction(UTetraFunction<A, B, C, D, R> t)
provides a convenience method for manufacturing types as an alternative to casting.
Modifier and Type | Method and Description |
---|---|
R |
$apply(A a,
B b,
C c,
D d) |
default R |
apply(A a,
B b,
C c,
D d) |
static <A,B,C,D,R> |
asUTetraFunction(UTetraFunction<A,B,C,D,R> t) |
static <A,B,C,D,R> UTetraFunction<A,B,C,D,R> asUTetraFunction(UTetraFunction<A,B,C,D,R> t)