public <T> T convert(final String value, final Class<T> type) {
		requireNonNull(type);
		if (!isSupported(type)) {
			throw new UnsupportedOperationException(
				"Can't convert the '%s' to type '%s'."
					.formatted(value, type.getName())
			);
		}

		if (value == null || value.isEmpty()) {
			return null;
		}

		@SuppressWarnings("unchecked")
		final T result = (T)converters.get(type).apply(value);
		return result;
	}
Convert the given string {@code value} to the desired {@code type}. If
the given input {@code value} is {@code null}, the converter method
also returns {@code null}.

@param value the string value to convert
@param type the target type
@return the converted string value
@param <T> the target type
@throws UnsupportedOperationException if the conversion target {@code type}
        is not supported
@throws RuntimeException if the {@code value} can't be converted. This is
        the exception thrown by the registered converter function.
jenetics.incubator/src/main/java/io/jenetics/incubator/csv/Converter.java