public EqualsBuilder append(final Object lhs, final Object rhs) {
        if (isEquals == false) {
            return this;
        }
        if (lhs == rhs) {
            return this;
        }
        if (lhs == null || rhs == null) {
            this.setEquals(false);
            return this;
        }
        final Class<?> lhsClass = lhs.getClass();
        if (!lhsClass.isArray()) {
            // The simple case, not an array, just test the element
            isEquals = lhs.equals(rhs);
        } else if (lhs.getClass() != rhs.getClass()) {
            // Here when we compare different dimensions, for example: a boolean[][] to a boolean[]
            this.setEquals(false);
        }
        // 'Switch' on type of array, to dispatch to the correct handler
        // This handles multi dimensional arrays of the same depth
        else if (lhs instanceof long[]) {
            append((long[]) lhs, (long[]) rhs);
        }
public EqualsBuilder append ( final Object lhs , final Object rhs ) { if ( isEquals == false ) { return this ; } if ( lhs == rhs ) { return this ; } if ( lhs == null || rhs == null ) { this . setEquals ( false ) ; return this ; } final Class < ? > lhsClass = lhs . getClass ( ) ; if ( ! lhsClass . isArray ( ) ) { isEquals = lhs . equals ( rhs ) ; } else if ( lhs . getClass ( ) != rhs . getClass ( ) ) { this . setEquals ( false ) ; } else if ( lhs instanceof long [ ] ) { append ( ( long [ ] ) lhs , ( long [ ] ) rhs ) ; }
<p>Test if two <code>Object</code>s are equal using their
<code>equals</code> method.</p>

@param lhs  the left hand object
@param rhs  the right hand object
@return EqualsBuilder - used to chain calls.