IsEqual (Hamcrest 2.1 API)
Date: 2018-12-21

org.hamcrest.core

## Class IsEqual<T>

- java.lang.Object
- - org.hamcrest.BaseMatcher<T>
  - - org.hamcrest.core.IsEqual<T>

- All Implemented Interfaces:
    Matcher<T>, SelfDescribing

      public class IsEqual<T>
      extends BaseMatcher<T>

  Is the value equal to another value, as tested by the `Object.equals(java.lang.Object)` invokedMethod?

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `IsEqual(T equalArg)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `describeTo(Description description)` Generates a description of the object.
    `static <T> Matcher<T>` | `equalTo(T operand)` Creates a matcher that matches when the examined object is logically equal to the specified `operand`, as determined by calling the `Object.equals(java.lang.Object)` method on the examined object.
    `static Matcher<java.lang.Object>` | `equalToObject(java.lang.Object operand)` Creates an `IsEqual` matcher that does not enforce the values being compared to be of the same static type.
    `boolean` | `matches(java.lang.Object actualValue)` Evaluates the matcher for argument item.

    - ### Methods inherited from class org.hamcrest.BaseMatcher

      `_dont_implement_Matcher___instead_extend_BaseMatcher_, describeMismatch, isNotNull, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### IsEqual

          public IsEqual(T equalArg)

  - ### Method Detail

    - #### matches

          public boolean matches(java.lang.Object actualValue)

      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:
        `actualValue` - the object against which the matcher is evaluated.
      Returns:
        `true` if item matches, otherwise `false`.
      See Also:
        `BaseMatcher`

    - #### describeTo

          public void describeTo(Description description)

      Description copied from interface: `SelfDescribing`
      Generates a description of the object. The description may be part of a a description of a larger object of which this is just a component, so it should be worded appropriately.
      Parameters:
        `description` - The description to be built or appended to.

    - #### equalTo

          public static <T> Matcher<T> equalTo(T operand)

      Creates a matcher that matches when the examined object is logically equal to the specified `operand`, as determined by calling the `Object.equals(java.lang.Object)` method on the examined object.

      If the specified operand is `null` then the created matcher will only match if the examined object's `equals` method returns `true` when passed a `null` (which would be a violation of the `equals` contract), unless the examined object itself is `null`, in which case the matcher will return a positive match.

      The created matcher provides a special behaviour when examining `Array`s, whereby it will match if both the operand and the examined object are arrays of the same length and contain items that are equal to each other (according to the above rules) in the same indexes.

      For example:

           assertThat("foo", equalTo("foo"));
           assertThat(new String[] {"foo", "bar"}, equalTo(new String[] {"foo", "bar"}));

    - #### equalToObject

          public static Matcher<java.lang.Object> equalToObject(java.lang.Object operand)

      Creates an `IsEqual` matcher that does not enforce the values being compared to be of the same static type.