循环向上转型，获取对象的 DeclaredField，并强制设置为可访问。
如向上转型到 Object 仍无法找到，返回 null。

@param target
目标对象
@param name
成员名
@return 成员
768191
public static Field getAccessibleField(final Object target, final String name) {
		for (Class<?> superClass = target.getClass(); superClass != Object.class; superClass = superClass.getSuperclass()) {
			try {
				Field field = superClass.getDeclaredField(name);
				makeAccessible(field);
				return field;
			} catch (NoSuchFieldException e) {
				// Field 不在当前类定义，继续向上转型
				LOG.trace("", e);
			}
		}
		return null;
	}
679656
Field getField(String name)
    {       
        FieldInfo info=getFieldInfo(name);
        return getField(info,true);
    }
637484
public Integer registerName(final String name) {
		final Integer newid = Integer.valueOf(counter.incrementAndGet());
		final Integer assigned = map.putIfAbsent(name, newid);
		return (assigned == null ? newid : assigned);
	}
33157
public static void invokeSetter(final Object target, final String name, final Object value) {
		String setterMethodName = SETTER_PREFIX + StringUtils.capitalize(name);
		invokeMethodByName(target, setterMethodName, new Object[] {
			value
		});
	}
1341022
Path toField(String name) {
        if (isRoot()) {
            return copy(name);
        } else {
            return copy(path + "." + name);
        }
    }
836838
public static <T> T getFieldValue(Object target, String fieldName) {
        try {
            Field field = target.getClass().getDeclaredField(fieldName);
            field.setAccessible(true);
            @SuppressWarnings("unchecked")
            T returnValue = (T) field.get(target);
            return returnValue;
        } catch (NoSuchFieldException e) {
            throw handleException(fieldName, e);
        } catch (IllegalAccessException e) {
            throw handleException(fieldName, e);
        }
    }
809197
public static Optional<Field> findField(Class type, String name) {
        Optional<Field> declaredField = findDeclaredField(type, name);
        if (!declaredField.isPresent()) {
            while ((type = type.getSuperclass()) != null) {
                declaredField = findField(type, name);
                if (declaredField.isPresent()) {
                    break;
                }
            }
        }
        return declaredField;
    }
17601
public FieldSchema getField(String name) {
    for (FieldSchema field : fieldSchemas)
      if (field.getName().equals(name))
        return field;
    return null;
  }
392795
public static Method getAccessibleMethod(final Object target, final String name, final Class<?>... parameterTypes) {
		for (Class<?> searchType = target.getClass(); searchType != Object.class; searchType = searchType.getSuperclass()) {
			try {
				Method method = searchType.getDeclaredMethod(name, parameterTypes);
				makeAccessible(method);
				return method;
			} catch (NoSuchMethodException e) {
				// Method不在当前类定义,继续向上转型
				LOG.trace("", e);
			}
		}
		return null;
	}
643437
public static Object getFieldValue(Object obj, String name) {
        Class<?> clazz = obj.getClass();
        try {
            Field f = clazz.getDeclaredField(name);
            return f.get(obj);
        }
        catch (Exception e) {
            return null;
        }
    }
245107
public static <T> T lookup(String name) {
        InitialContext initialContext = initialContext();
        try {
            @SuppressWarnings("unchecked")
            T object = (T) initialContext.lookup(name);
            if (object == null) {
                throw new NameNotFoundException(name + " was found but is null");
            }
            return object;
        } catch (NameNotFoundException e) {
            throw new IllegalArgumentException(name + " was not found in JNDI", e);
        } catch (NamingException e) {
            throw new IllegalArgumentException("JNDI lookup failed", e);
        } finally {
            closeContext(initialContext);
        }
    }
1075617
public String getHeader(String name)
    {
        HeaderField f = getHeaderField(name);
        if (f != null)
        {
            return f.getStringValue();
        }
        else
        {
            return null;
        }
    }
467256
static Map<View, FormValidator.FieldInfo> getFieldsForTarget(Object target) {
		Map<View, FormValidator.FieldInfo> infoMap = sCachedFieldsByTarget.get(target);

		if (infoMap != null) {
			for (View view : infoMap.keySet()) {
				// view has been removed from the window - we will need to scan fields of target again
				if (view.getWindowToken() == null) {
					infoMap = null;

					break;
				}
			}
		}

		if (infoMap == null) {
			infoMap = findFieldsToValidate(target);
			sCachedFieldsByTarget.put(target, infoMap);
		}
		return infoMap;
	}
674580
@Nullable
    public String getHeader(String name) {
        requireNonNull(name);
        List<String> values = lazyMap.get().get(name.toLowerCase());
        if (values == null) {
            return null;
        }
        return values.get(0);
    }
1111222
public final int writeFieldName(String name)
    {
        if (_type == TYPE_OBJECT) {
            if (_currentName != null) { // just wrote a name...
                return STATUS_EXPECT_VALUE;
            }
            _currentName = name;
            return (_index < 0) ? STATUS_OK_AS_IS : STATUS_OK_AFTER_COMMA;
        }
        return STATUS_EXPECT_VALUE;
    }
1236375
private static FieldInfo getFieldInfo(String name)
    {
        FieldInfo info = (FieldInfo)__info.get(name);
        if (info==null)
            info = new FieldInfo(name,false);
        return info;
    }
480202
public PRIndirectReference getRefByName(String name) {
        FieldInformation fi = (FieldInformation)fieldByName.get(name);
        if (fi == null) return null;
        return fi.getRef();
    }