@Override
  public <T> Optional<List<T>> getListProperty(String key, Class<T> itemType) {
    var targetKey = targetPropertyName(key);
    var listResult = binder.bind(targetKey, Bindable.listOf(itemType));
    return listResult.isBound() ? Optional.of(listResult.get()) : Optional.empty();
  }
@Test
  void resolvesListProperties() {
    env.setProperty("prop.0.strLst", "v1,v2,v3");
    env.setProperty("prop.0.intLst", "1,2,3");

    var resolver = new PropertyResolverImpl(env);
    assertThat(resolver.getListProperty("prop.0.strLst", String.class))
        .hasValue(List.of("v1", "v2", "v3"));
    assertThat(resolver.getListProperty("prop.0.intLst", Integer.class))
        .hasValue(List.of(1, 2, 3));
  }