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)));
  }
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)));
  }
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 ) ) ) ; }
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.
Returns a predicate that evaluates to {