## 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:
  CustomTypeSafeMatcher, 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.

Constructor Summary
`protected` `TypeSafeMatcher()` The default constructor for simple sub types
`protected` `TypeSafeMatcher(Class<?> expectedType)` Use this constructor if the subclass that implements `matchesSafely` is not the class that binds <T> to a type.
`protected` `TypeSafeMatcher(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 description)` Generate a description of why the matcher has not accepted the item.
`protected void` `describeMismatchSafely(T item, Description mismatchDescription)` Subclasses should override this.
`boolean` `matches(Object item)` Methods made final to prevent accidental override.
`protected abstract boolean` `matchesSafely(T item)` 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

### 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(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

Method Detail

### 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:
    `BaseMatcher`

### 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.

Copyright © 2002–2020 JUnit. All rights reserved.