protected boolean accept(Field field) {
        if (field.getName().indexOf(ClassUtils.INNER_CLASS_SEPARATOR_CHAR) != -1) {
            // Reject field from inner class.
            return false;
        }
        if (Modifier.isTransient(field.getModifiers()) && !this.isAppendTransients()) {
            // Reject transient fields.
            return false;
        }
        if (Modifier.isStatic(field.getModifiers()) && !this.isAppendStatics()) {
            // Reject static fields.
            return false;
        }
        if (this.excludeFieldNames != null
            && Arrays.binarySearch(this.excludeFieldNames, field.getName()) >= 0) {
            // Reject fields from the getExcludeFieldNames list.
            return false;
        }
        return true;
    }
Returns whether or not to append the given <code>Field</code>.
<ul>
<li>Transient fields are appended only if {@link #isAppendTransients()} returns <code>true</code>.
<li>Static fields are appended only if {@link #isAppendStatics()} returns <code>true</code>.
<li>Inner class fields are not appened.</li>
</ul>

@param field
           The Field to test.
@return Whether or not to append the given <code>Field</code>.
android/android_framework/base/src/main/java/lang3/builder/ReflectionToStringBuilder.java