@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 resolvedSingleValueProperties() {
    env.setProperty("prop.0.strProp", "testStr");
    env.setProperty("prop.0.intProp", "123");

    var resolver = new PropertyResolverImpl(env);
    assertThat(resolver.getProperty("prop.0.strProp", String.class))
        .hasValue("testStr");
    assertThat(resolver.getProperty("prop.0.intProp", Integer.class))
        .hasValue(123);
  }