docs: @SuppressWarnings("rawtypes")
      private static Field getDeclaredField(Class clazz, String fieldName) throws NoSuchFieldException {
          Assert.notNull(clazz);
          Assert.hasText(fieldName);
          for (Class superClass = clazz; superClass != Object.class; superClass = superClass.getSuperclass()) {
              try {
                  return superClass.getDeclaredField(fieldName);
              } catch (NoSuchFieldException e) {
                  // Field不在当前类定义,继续向上转型
              }
          }
          throw new NoSuchFieldException("No such field: " + clazz.getName() + '.' + fieldName);
      }