code: private static void walkFields(final Class<?> cls, final Map<String, Field> fieldMap) {
  		if (cls.equals(Object.class)) {
  			return;
  		}
  		Class<?> superClass = cls.getSuperclass();
  		walkFields(superClass, fieldMap);
  		Arrays.stream(cls.getDeclaredFields())
  				.filter(f -> !Modifier.isStatic(f.getModifiers()))
  				.forEach(f -> fieldMap.put(f.getName(), f));
  	}
docs: 指定したクラスの持つ全てのフィールドを再帰的に探索して取得する
  
  @param cls 型
  @param fieldMap {@literal Map<String, Field>ｊ}