public <R> R with(Case<T1, R> case1, Case<T2, R> case2, Case<T3, R> case3, Case<T4, R> case4) { return value.fold(a -> case1.test(a), b -> case2.test(b), c -> case3.test(c), d -> case4.test(d)).orElse(null); }
public <R> R with(Case<T1, R> case1, Case<T2, R> case2, Case<T3, R> case3, Case<T4, R> case4) { return value.fold(a -> case1.test(a), b -> case2.test(b), c -> case3.test(c), d -> case4.test(d)).orElse(null); }