@Override
    @Nullable
    public <T> ParamConverter<T> getConverter(Class<T> rawType, @Nullable Type genericType, Annotation[] annotations) {
        if (!rawType.isEnum()) {
            return null;
        }

        @SuppressWarnings("unchecked") final Class<Enum<?>> type = (Class<Enum<?>>) rawType;
        final Enum<?>[] constants = type.getEnumConstants();
        final String parameterName = getParameterNameFromAnnotations(annotations).orElse("Parameter");
        final Method fromStringMethod = AccessController.doPrivileged(ReflectionHelper.getFromStringStringMethodPA(rawType));

        return new FuzzyEnumParamConverter<>(rawType, fromStringMethod, constants, parameterName);
    }
@Test
    void testToString() {
        final ParamConverter<WithToString> converter = getConverter(WithToString.class);
        assertThat(converter.toString(WithToString.A_1)).isEqualTo("<A_1>");
    }