public static void fields(Class objectClass, Consumer<Field> fieldReaders) {
        if (TypeUtils.isProxy(objectClass)) {
            Class superclass = objectClass.getSuperclass();
            fields(superclass, fieldReaders);
            return;
        }

        Field[] fields = fieldCache.get(objectClass);
        if (fields == null) {
            fields = objectClass.getFields();
            fieldCache.putIfAbsent(objectClass, fields);
        }

        boolean enumClass = Enum.class.isAssignableFrom(objectClass);
        for (Field field : fields) {
            int modifiers = field.getModifiers();
            if (Modifier.isStatic(modifiers) && !enumClass) {
                continue;
            }
            if (ignore(field.getType())) {
                continue;
            }
            fieldReaders.accept(field);
        }
    }
@author Bob Lee
@author Jesse Wilson
@author Shaojin Wen
@author poo0054
core/src/main/java/com/alibaba/fastjson2/util/BeanUtils.java