@SafeVarargs public static <T> Predicate<T> anyOf(Predicate<? super T>... predicates) { final PredicateChain<T> predicateChain = new PredicateChain<>(); for (Predicate<? super T> predicate : predicates) { predicateChain.chain(predicate); } return predicateChain.anyMatch(); } }