code: public static <T> Predicate<T> and(Predicate<? super T> first, Predicate<? super T> second) {
  		return new AndPredicate<>(Predicates.<T> asList(Objects.requireNonNull(first), Objects.requireNonNull(second)));
  	}
docs: Returns a predicate that evaluates to {@code true} if both of its
  components evaluate to {@code true}. The components are evaluated in
  order, and evaluation will be "short-circuited" as soon as a false
  predicate is found.