code: @SuppressWarnings({"unchecked"})
      public final boolean matches(Object item) {
          return item != null
                  && expectedType.isInstance(item)
                  && matchesSafely((T) item);
      }
docs: Method made final to prevent accidental override.
  If you need to override this, there's no point on extending TypeSafeMatcher.
  Instead, extend the {@link BaseMatcher}.