Package org.hamcrest

Class TypeSafeMatcher<T>

java.lang.Object
org.hamcrest.BaseMatcher<T>
org.hamcrest.TypeSafeMatcher<T>
All Implemented Interfaces:
Matcher<T>, SelfDescribing
Direct Known Subclasses:
ArrayAsIterableMatcher, BigDecimalCloseTo, CustomTypeSafeMatcher, HasItemInArray, HasProperty, IsArray, IsArrayContainingInAnyOrder, IsArrayContainingInOrder, IsBlankString, IsCloseTo, IsCompatibleType, IsEmptyCollection, IsEmptyIterable, IsEmptyString, IsEqualCompressingWhiteSpace, IsEqualIgnoringCase, IsMapContaining, IsNaN, MatchesPattern, StringContainsInOrder, SubstringMatcher

public abstract class TypeSafeMatcher<T> extends BaseMatcher<T>
Convenient base class for Matchers that require a non-null value of a specific type. This simply implements the null check, checks the type and then casts.
Author:
Joe Walnes, Steve Freeman, Nat Pryce
  • Constructor Details

    • TypeSafeMatcher

      protected TypeSafeMatcher()
      The default constructor for simple sub types
    • TypeSafeMatcher

      protected TypeSafeMatcher(Class<?> expectedType)
      Use this constructor if the subclass that implements matchesSafely is not the class that binds <T> to a type.
      Parameters:
      expectedType - The expectedType of the actual value.
    • TypeSafeMatcher

      protected TypeSafeMatcher(ReflectiveTypeFinder typeFinder)
      Use this constructor if the subclass that implements matchesSafely is not the class that binds <T> to a type.
      Parameters:
      typeFinder - A type finder to extract the type
  • Method Details

    • matchesSafely

      protected abstract boolean matchesSafely(T item)
      Subclasses should implement this. The item will already have been checked for the specific type and will never be null.
    • describeMismatchSafely

      protected void describeMismatchSafely(T item, Description mismatchDescription)
      Subclasses should override this. The item will already have been checked for the specific type and will never be null.
    • matches

      public final boolean matches(Object item)
      Methods made final to prevent accidental override. If you need to override this, there's no point on extending TypeSafeMatcher. Instead, extend the BaseMatcher.
      Parameters:
      item - the object against which the matcher is evaluated.
      Returns:
      true if item matches, otherwise false.
      See Also:
    • describeMismatch

      public final void describeMismatch(Object item, Description description)
      Description copied from interface: Matcher
      Generate a description of why the matcher has not accepted the item. The description will be part of a larger description of why a matching failed, so it should be concise. This method assumes that matches(item) is false, but will not check this.
      Specified by:
      describeMismatch in interface Matcher<T>
      Overrides:
      describeMismatch in class BaseMatcher<T>
      Parameters:
      item - The item that the Matcher has rejected.
      description - The description to be built or appended to.