docs: public static <S> Class<? extends S> getSystemPropertyAsClass(Class<S> type, String name, String defaultValue) {
          final String value = getSystemProperty(name, null);
          if (value != null) {
              try {
                  final Class<?> typeInstance = Class.forName(value);
                  if (typeInstance != null) {
                      return typeInstance.asSubclass(type);
                  }
              } catch (Throwable exception) {
                  //
              }
          }
          if (defaultValue != null) {
              try {
                  final Class<?> typeInstance = Class.forName(defaultValue);
                  if (typeInstance != null) {
                      return typeInstance.asSubclass(type);
                  }
              } catch (Throwable exception) {
                  //
              }
          }
          return null;
      }