Package org.hamcrest

Class TypeSafeDiagnosingMatcher<T>

    • Constructor Detail

      • TypeSafeDiagnosingMatcher

        protected TypeSafeDiagnosingMatcher​(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.
      • TypeSafeDiagnosingMatcher

        protected TypeSafeDiagnosingMatcher​(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 Detail

      • matchesSafely

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

        public final boolean matches​(Object item)
        Description copied from interface: Matcher
        Evaluates the matcher for argument item.

        This method matches against Object, instead of the generic type T. This is because the caller of the Matcher does not know at runtime what the type is (because of type erasure with Java generics). It is down to the implementations to check the correct type.

        Parameters:
        item - the object against which the matcher is evaluated.
        Returns:
        true if item matches, otherwise false.
        See Also:
        BaseMatcher
      • describeMismatch

        public final void describeMismatch​(Object item,
                                           Description mismatchDescription)
        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.
        mismatchDescription - The description to be built or appended to.