code: private static Field[] getDeclaredFields(Class<?> clazz) {
  		Assert.notNull(clazz, "Class must not be null");
  		Field[] result = declaredFieldsCache.get(clazz);
  		if (result == null) {
  			result = clazz.getDeclaredFields();
  			declaredFieldsCache.put(clazz, (result.length == 0 ? NO_FIELDS : result));
  		}
  		return result;
  	}
docs: This variant retrieves {@link Class#getDeclaredFields()} from a local cache
  in order to avoid the JVM's SecurityManager check and defensive array copying.
  @param clazz the class to introspect
  @return the cached array of fields
  @see Class#getDeclaredFields()