public static boolean reflectionEquals(Object lhs, Object rhs, String... excludeFields) {
        return reflectionEquals(lhs, rhs, false, null, excludeFields);
    }
<p>This method uses reflection to determine if the two <code>Object</code>s
are equal.</p>

<p>It uses <code>AccessibleObject.setAccessible</code> to gain access to private
fields. This means that it will throw a security exception if run under
a security manager, if the permissions are not set up correctly. It is also
not as efficient as testing explicitly.</p>

<p>Transient members will be not be tested, as they are likely derived
fields, and not part of the value of the Object.</p>

<p>Static fields will not be tested. Superclass fields will be included.</p>

@param lhs  <code>this</code> object
@param rhs  the other object
@param excludeFields  array of field names to exclude from testing
@return <code>true</code> if the two Objects have tested equals.
android/android_framework/base/src/main/java/lang3/builder/EqualsBuilder.java