@GwtCompatible(emulated=true) public final class Predicates extends Object
Predicate
instances.
All methods return serializable predicates as long as they're given serializable parameters.
See the Guava User Guide article on the use of Predicate
.
Modifier and Type | Method and Description |
---|---|
static <T> Predicate<T> |
alwaysFalse()
Returns a predicate that always evaluates to
false . |
static <T> Predicate<T> |
alwaysTrue()
Returns a predicate that always evaluates to
true . |
static <T> Predicate<T> |
and(Iterable<? extends Predicate<? super T>> components)
Returns a predicate that evaluates to
true if each of its components evaluates to
true . |
static <T> Predicate<T> |
and(Predicate<? super T>... components)
Returns a predicate that evaluates to
true if each of its components evaluates to
true . |
static <T> Predicate<T> |
and(Predicate<? super T> first,
Predicate<? super T> second)
Returns a predicate that evaluates to
true if both of its components evaluate to true . |
static Predicate<Class<?>> |
assignableFrom(Class<?> clazz)
Deprecated.
Use the correctly-named method
subtypeOf(java.lang.Class<?>) instead. This method is scheduled
to be removed in January 2018. |
static <A,B> Predicate<A> |
compose(Predicate<B> predicate,
Function<A,? extends B> function)
Returns the composition of a function and a predicate.
|
static Predicate<CharSequence> |
contains(Pattern pattern)
Returns a predicate that evaluates to
true if the CharSequence being tested
contains any match for the given regular expression pattern. |
static Predicate<CharSequence> |
containsPattern(String pattern)
Returns a predicate that evaluates to
true if the CharSequence being tested
contains any match for the given regular expression pattern. |
static <T> Predicate<T> |
equalTo(T target)
Returns a predicate that evaluates to
true if the object being tested equals()
the given target or both are null. |
static <T> Predicate<T> |
in(Collection<? extends T> target)
Returns a predicate that evaluates to
true if the object reference being tested is a
member of the given collection. |
static Predicate<Object> |
instanceOf(Class<?> clazz)
Returns a predicate that evaluates to
true if the object being tested is an instance of
the given class. |
static <T> Predicate<T> |
isNull()
Returns a predicate that evaluates to
true if the object reference being tested is
null. |
static <T> Predicate<T> |
not(Predicate<T> predicate)
Returns a predicate that evaluates to
true if the given predicate evaluates to false . |
static <T> Predicate<T> |
notNull()
Returns a predicate that evaluates to
true if the object reference being tested is not
null. |
static <T> Predicate<T> |
or(Iterable<? extends Predicate<? super T>> components)
Returns a predicate that evaluates to
true if any one of its components evaluates to
true . |
static <T> Predicate<T> |
or(Predicate<? super T>... components)
Returns a predicate that evaluates to
true if any one of its components evaluates to
true . |
static <T> Predicate<T> |
or(Predicate<? super T> first,
Predicate<? super T> second)
Returns a predicate that evaluates to
true if either of its components evaluates to
true . |
static Predicate<Class<?>> |
subtypeOf(Class<?> clazz)
Returns a predicate that evaluates to
true if the class being tested is assignable to
(is a subtype of) clazz . |
@GwtCompatible(serializable=true) public static <T> Predicate<T> alwaysTrue()
true
.@GwtCompatible(serializable=true) public static <T> Predicate<T> alwaysFalse()
false
.@GwtCompatible(serializable=true) public static <T> Predicate<T> isNull()
true
if the object reference being tested is
null.@GwtCompatible(serializable=true) public static <T> Predicate<T> notNull()
true
if the object reference being tested is not
null.public static <T> Predicate<T> not(Predicate<T> predicate)
true
if the given predicate evaluates to false
.public static <T> Predicate<T> and(Iterable<? extends Predicate<? super T>> components)
true
if each of its components evaluates to
true
. The components are evaluated in order, and evaluation will be "short-circuited"
as soon as a false predicate is found. It defensively copies the iterable passed in, so future
changes to it won't alter the behavior of this predicate. If components
is empty, the
returned predicate will always evaluate to true
.@SafeVarargs public static <T> Predicate<T> and(Predicate<? super T>... components)
true
if each of its components evaluates to
true
. The components are evaluated in order, and evaluation will be "short-circuited"
as soon as a false predicate is found. It defensively copies the array passed in, so future
changes to it won't alter the behavior of this predicate. If components
is empty, the
returned predicate will always evaluate to true
.public static <T> Predicate<T> and(Predicate<? super T> first, Predicate<? super T> second)
true
if both of its components evaluate to true
. The components are evaluated in order, and evaluation will be "short-circuited" as soon
as a false predicate is found.public static <T> Predicate<T> or(Iterable<? extends Predicate<? super T>> components)
true
if any one of its components evaluates to
true
. The components are evaluated in order, and evaluation will be "short-circuited"
as soon as a true predicate is found. It defensively copies the iterable passed in, so future
changes to it won't alter the behavior of this predicate. If components
is empty, the
returned predicate will always evaluate to false
.@SafeVarargs public static <T> Predicate<T> or(Predicate<? super T>... components)
true
if any one of its components evaluates to
true
. The components are evaluated in order, and evaluation will be "short-circuited"
as soon as a true predicate is found. It defensively copies the array passed in, so future
changes to it won't alter the behavior of this predicate. If components
is empty, the
returned predicate will always evaluate to false
.public static <T> Predicate<T> or(Predicate<? super T> first, Predicate<? super T> second)
true
if either of its components evaluates to
true
. The components are evaluated in order, and evaluation will be "short-circuited"
as soon as a true predicate is found.public static <T> Predicate<T> equalTo(@NullableDecl T target)
true
if the object being tested equals()
the given target or both are null.@GwtIncompatible public static Predicate<Object> instanceOf(Class<?> clazz)
true
if the object being tested is an instance of
the given class. If the object being tested is null
this predicate evaluates to false
.
If you want to filter an Iterable
to narrow its type, consider using Iterables.filter(Iterable, Class)
in preference.
Warning: contrary to the typical assumptions about predicates (as documented at
Predicate.apply(T)
), the returned predicate may not be consistent with equals. For
example, instanceOf(ArrayList.class)
will yield different results for the two equal
instances Lists.newArrayList(1)
and Arrays.asList(1)
.
@GwtIncompatible @Beta @Deprecated public static Predicate<Class<?>> assignableFrom(Class<?> clazz)
subtypeOf(java.lang.Class<?>)
instead. This method is scheduled
to be removed in January 2018.true
if the class being tested is assignable
TO clazz
, that is, if it is a subtype of clazz
. Yes, this method
is named very incorrectly! Example:
List<Class<?>> classes = Arrays.asList(
Object.class, String.class, Number.class, Long.class);
return Iterables.filter(classes, assignableFrom(Number.class));
The code above returns Number.class
and Long.class
, not Number.class
and Object.class
as the name implies!
The returned predicate does not allow null inputs.
@GwtIncompatible @Beta public static Predicate<Class<?>> subtypeOf(Class<?> clazz)
true
if the class being tested is assignable to
(is a subtype of) clazz
. Example:
List<Class<?>> classes = Arrays.asList(
Object.class, String.class, Number.class, Long.class);
return Iterables.filter(classes, subtypeOf(Number.class));
The code above returns an iterable containing Number.class
and Long.class
.assignableFrom
)public static <T> Predicate<T> in(Collection<? extends T> target)
true
if the object reference being tested is a
member of the given collection. It does not defensively copy the collection passed in, so
future changes to it will alter the behavior of the predicate.
This method can technically accept any Collection<?>
, but using a typed collection
helps prevent bugs. This approach doesn't block any potential users since it is always possible
to use Predicates.<Object>in()
.
target
- the collection that may contain the function inputpublic static <A,B> Predicate<A> compose(Predicate<B> predicate, Function<A,? extends B> function)
x
, the generated
predicate returns predicate(function(x))
.@GwtIncompatible public static Predicate<CharSequence> containsPattern(String pattern)
true
if the CharSequence
being tested
contains any match for the given regular expression pattern. The test used is equivalent to
Pattern.compile(pattern).matcher(arg).find()
IllegalArgumentException
- if the pattern is invalid@GwtIncompatible(value="java.util.regex.Pattern") public static Predicate<CharSequence> contains(Pattern pattern)
true
if the CharSequence
being tested
contains any match for the given regular expression pattern. The test used is equivalent to
pattern.matcher(arg).find()
Copyright © 2010–2018. All rights reserved.