Predicate
Date: 2016-05-24

com.google.common.base

## Interface Predicate<T>

- All Known Implementing Classes:
    BloomFilter, CharMatcher, Range

      @GwtCompatible
      public interface Predicate<T>

  Determines a true or false value for a given input.

  The `Predicates` class provides common predicates and related utilities.

  See the Guava User Guide article on the use of `Predicate`.

  Since:
    2.0

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `apply(T input)` Returns the result of applying this predicate to `input`.
    `boolean` | `equals(java.lang.Object object)` Indicates whether another object is equal to this predicate.

- - ### Method Detail

    - #### apply

          boolean apply(@Nullable
                      T input)

      Returns the result of applying this predicate to `input`. This method is generally expected, but not absolutely required, to have the following properties:
      - Its execution does not cause any observable side effects.
      - The computation is consistent with equals; that is, `Objects.equal``(a, b)` implies that `predicate.apply(a) == predicate.apply(b))`.
      Throws:
        `java.lang.NullPointerException` - if `input` is null and this predicate does not accept null arguments

    - #### equals

          boolean equals(@Nullable
                       java.lang.Object object)

      Indicates whether another object is equal to this predicate.

      Most implementations will have no reason to override the behavior of `Object.equals(java.lang.Object)`. However, an implementation may also choose to return `true` whenever `object` is a `Predicate` that it considers interchangeable with this one. "Interchangeable" typically means that `this.apply(t) == that.apply(t)` for all `t` of type `T`). Note that a `false` result from this method does not imply that the predicates are known not to be interchangeable.

      Overrides:
        `equals` in class `java.lang.Object`