code: private static Fields toFieldEnum(Field field) {
          Class<?> clazz = field.getType();
          String name = clazz.getSimpleName().toLowerCase();
  
          if (name.equals("int") || name.equals("integer")) {
              return Fields.INT;
          } else if (name.equals("long")) {
              return Fields.LONG;
          } else if (name.equals("float")) {
              return Fields.FLOAT;
          } else if (name.equals("double")) {
              return Fields.DOUBLE;
          } else if (CharSequence.class.isAssignableFrom(clazz)) {
              return Fields.STRING;
          } else if (name.equals("boolean")) {
              return Fields.BOOLEAN;
          } else if (clazz.isAssignableFrom(List.class)) {
              ParameterizedType listType = (ParameterizedType) field.getGenericType();
              Class<?> listClass = (Class<?>) listType.getActualTypeArguments()[0];
  
              if (listClass.toString().equals("class java.lang.String")) {
                  return Fields.LIST;
              }
          }
  
          throw new RuntimeException("Field not found!");
      }
docs: Return a Fields object for a given field's Class.
  
  @param field The class that will be used.
  @throws RuntimeException in case the field type is not found.
  @return A Fields type if found.