public <T> T convert(String property, Class<T> targetClass) {
        final AbstractPropertyConverter<?> converter = converterRegistry.get(targetClass);
        if (converter == null) {
            throw new MissingFormatArgumentException("converter not found, can't convert from String to " + targetClass.getCanonicalName());
        }
        return (T) converter.convert(property);
    }
@Test
    void testConvertInteger() {
        assertEquals(100, (int) compositeConverter.convert("100", Integer.class));
        assertEquals(Integer.MAX_VALUE,
                (int) compositeConverter.convert(String.valueOf(Integer.MAX_VALUE), Integer.class));
        assertEquals(Integer.MIN_VALUE,
                (int) compositeConverter.convert(String.valueOf(Integer.MIN_VALUE), Integer.class));
    }