Получение исключения IllegalArgumentException для нулевого значения при использовании разделителя KeyValueGenerator

#java #split #guava

#java #разделение #гуава

Вопрос:

Я использую разделитель гуавы как:

 Splitter.on(",").withKeyValueSeperator(Splitter.on("=").limit(2)).split(<My required String>);
 

Моя входная строка выглядит так:

 A=1,B=2,C=null....
 

Если ни одно из значений (1,2) для ключа (A, B, C) не равно null, то указанный выше разделитель работает нормально, в противном случае он завершается с ошибкой "IllegalArgumentException: Chunk[>null] is not a valid entry"

Ответ №1:

Работает нормально для введенных вами данных:

 @Test
public void shouldSplitValues() {
    //given
    Splitter.MapSplitter mapSplitter = Splitter.on(",").withKeyValueSeparator("=");
    String input = "A=1,B=2,C=null";
    //when
    Map<String, String> result = mapSplitter.split(input);
    //then
    assertThat(result)
            .containsExactly(entry("A", "1"),
                             entry("B", "2"),
                             entry("C", "null"));
    // {A=1, B=2, C=null}
}
 

Сообщение предполагает, что это ошибка в вашей входной строке, т.Е. Если

 String input = "A=1,B=2,>null";
 

тогда я действительно получаю java.lang.IllegalArgumentException: Chunk [>null] is not a valid entry приведенный выше код.

Комментарии:

1. вы абсолютно правы, в моем случае C сам по себе был null