docs: public static Properties getFieldsAsProperties(Object obj, Class<?>[] clazzes) throws Exception {
          Properties props = new Properties();
          for (Field field : obj.getClass().getDeclaredFields()) {
              if (Modifier.isStatic(field.getModifiers()))
                  continue;
              field.setAccessible(true);
              Class<?> type = field.getType();
              if (clazzes == null || contains(type, clazzes)) {
                  Object val = field.get(obj);
                  if (val != null)
                      props.put(field.getName(), val.toString());
  
              }
          }
  
          return props;
      }