@Override
    public void setDefaultValue(Object defaultValue) {
        if (defaultValue instanceof List) {
            final List<?> defaultValueList = (List<?>) defaultValue;
            this.defaultValue = defaultValueList.stream()
                    .filter(o -> o instanceof String)
                    .map(String::valueOf)
                    .collect(Collectors.toList());
        }
    }
@Test
    public void testSetDefaultValue() throws Exception {
        final ListField list = new ListField("list", "The List", Collections.emptyList(), "Hello, this is a list", ConfigurationField.Optional.NOT_OPTIONAL);
        final Object defaultValue1 = list.getDefaultValue();
        assertThat(defaultValue1 instanceof List).isTrue();
        assertThat(((List) defaultValue1).size()).isEqualTo(0);

        list.setDefaultValue(ImmutableList.of("Foo", "Bar"));
        final Object defaultValue2 = list.getDefaultValue();
        assertThat(defaultValue2 instanceof List).isTrue();
        assertThat(((List) defaultValue2).size()).isEqualTo(2);

        list.setDefaultValue("Foo");
        final Object defaultValue3 = list.getDefaultValue();
        assertThat(defaultValue3 instanceof List).isTrue();
        assertThat(((List) defaultValue3).size()).isEqualTo(2);

        list.setDefaultValue(ImmutableList.of(3, "lol"));
        final Object defaultValue4 = list.getDefaultValue();
        assertThat(defaultValue4 instanceof List).isTrue();
        final List defaultValue4List = (List) defaultValue4;
        assertThat(defaultValue4List.size()).isEqualTo(1);
        assertThat(defaultValue4List.get(0)).isEqualTo("lol");
    }