code: public static Field getAccessibleField(final Object obj, final String fieldName) {
  		if(obj == null)
  			throw new IllegalArgumentException("object cannot be null.");
  		if(fieldName == null || fieldName.trim().length() == 0)
  			throw new IllegalArgumentException("fieldName cannot be null.");
  		for (Class<?> superClass = obj.getClass(); superClass != Object.class; superClass = superClass.getSuperclass()) {
  			try {
  				Field field = superClass.getDeclaredField(fieldName);
  				field.setAccessible(true);
  				return field;
  			} catch (NoSuchFieldException e) {//NOSONAR
  				// Field不在当前类定义,继续向上转型
  			}
  		}
  		return null;
  	}
docs: 循环向上转型, 获取对象的DeclaredField,	 并强制设置为可访问.
  
  如向上转型到Object仍无法找到, 返回null.