code: public static <T> Predicate<T> and(Predicate<? super T> first, Predicate<? super T> second) {
      return new AndPredicate<T>(Predicates.<T>asList(checkNotNull(first), checkNotNull(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.