I have an `application.yml` file with the following:

```
topics:
  input:
    - name: topic1
      partitions: 3
      replicas: 1
    - name: topic2
      partitions: 6
      replicas: 2

```

I would like to be able to update or add a new topic object at runtime.

I have tried the following for updating an existing object:

```
java -jar app.jar --topics.input[0].name="topicX"

```

and the following for adding another object to the list:

```
java -jar app.jar --topics.input[2].name="topicX" --topics.input[2].partitions=6 --topics.input[2].replicas=2

```

I am accessing the properties in the following way:

```
@Component
@ConfigurationProperties(prefix = "topics")
@Validated
public class TopicsConfiguration {

  @NotEmpty
  @NotNull
  private List<TopicConfiguration> input = new ArrayList<>();

  public List<TopicConfiguration> getInputTopics() {
    return input;
  }

  public void setFacts(List<TopicConfiguration> input) {
    this.input = input;
  }

}

```

Where `TopicConfiguration` is just a POJO with the 3 fields listed.

When I don't try and modify any of the property objects at runtime this works exactly as I expect, however I can not update the property list at all. When I try and update an existing object I get an NPE. When I try and add a new object to the list I get:

```
Property: topics.input[2].name
    Value: lmnop
    Origin: "topics.input[2].name" from property source "commandLineArgs"
    Reason: The elements [topics.input[2].name,topics.input[2].partitions,topics.input[2].replicas] were left unbound.

```

I would just like to know if there is any way to update or add an element to the list at runtime so that users of my project don't have to modify `application.yml` if they want to update this configuration.