@Override
  public <T> Optional<T> getProperty(String key, Class<T> targetType) {
    var targetKey = targetPropertyName(key);
    var result = binder.bind(targetKey, Bindable.of(targetType));
    return result.isBound() ? Optional.of(result.get()) : Optional.empty();
  }
@Test
  void resolvesCustomConfigClassProperties() {
    env.setProperty("prop.0.custProps.f1", "f1val");
    env.setProperty("prop.0.custProps.f2", "1234");

    var resolver = new PropertyResolverImpl(env);
    assertThat(resolver.getProperty("prop.0.custProps", CustomPropertiesClass.class))
        .hasValue(new CustomPropertiesClass("f1val", 1234));
  }