## org.hamcrest
Class TypeSafeDiagnosingMatcher<T>

    java.lang.Object
      org.hamcrest.BaseMatcher<T>
          org.hamcrest.TypeSafeDiagnosingMatcher<T>

Type Parameters:
  `T` -

All Implemented Interfaces:
  Matcher<T>, SelfDescribing

Direct Known Subclasses:
  CombinableMatcher, Every, FeatureMatcher, IsCollectionContaining

    public abstract class TypeSafeDiagnosingMatcher<T>

extends BaseMatcher<T>

Convenient base class for Matchers that require a non-null value of a specific type and that will report why the received value has been rejected. This implements the null check, checks the type and then casts. To use, implement

    matchesSafely()

.

Constructor Summary
`protected` `TypeSafeDiagnosingMatcher()` The default constructor for simple sub types
`protected` `TypeSafeDiagnosingMatcher(Class<?> expectedType)` Use this constructor if the subclass that implements `matchesSafely` is not the class that binds <T> to a type.
`protected` `TypeSafeDiagnosingMatcher(org.hamcrest.internal.ReflectiveTypeFinder typeFinder)` Use this constructor if the subclass that implements `matchesSafely` is not the class that binds <T> to a type.

Method Summary
`void` `describeMismatch(Object item, Description mismatchDescription)` Generate a description of why the matcher has not accepted the item.
`boolean` `matches(Object item)` Evaluates the matcher for argument item.
`protected abstract boolean` `matchesSafely(T item, Description mismatchDescription)` Subclasses should implement this.

Methods inherited from class org.hamcrest.BaseMatcher
`_dont_implement_Matcher___instead_extend_BaseMatcher_, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.hamcrest.SelfDescribing
`describeTo`

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(org.hamcrest.internal.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

### TypeSafeDiagnosingMatcher

    protected TypeSafeDiagnosingMatcher()

  The default constructor for simple sub types

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.

Copyright © 2002–2020 JUnit. All rights reserved.