Парсеры Univocity / Требуемая проверка (NotNull) - PullRequest
0 голосов
/ 04 июля 2018

Я использую парсер фиксированной длины для импорта файлов и Java-бинов с аннотациями в качестве классов отображения. Как я могу определить поле как требуется? Не удалось найти аннотацию. Могу ли я реализовать специальный преобразователь для такой проверки?

1 Ответ

0 голосов
/ 06 июля 2018

UPDATE: Версия 2.7.0 представляет аннотацию @Validate. По умолчанию это запрещает нулевые или пустые значения.

Используйте это так:

public static class A {
    @Parsed(index = 0)
    @Validate(nullable = true)
    public String nullNotBlank;

    @Parsed(index = 1)
    @Validate(oneOf = {"a", "b"})
    public String aOrB;

    @Parsed(index = 2)
    @Validate(oneOf = {"a"}, noneOf = "b")
    public String aNotB;

    @Parsed(index = 3)
    @Validate(allowBlanks = true, oneOf = {"a", "b"})
    public String aOrBOrNull;
}

Другим способом было бы поместить аннотацию в ваш метод установки.

@Parsed
public void setMyField(String data) {
    if(data == null){
        throw new IllegalArgumentException("MyField can't be null");
    }
    this.myField = data;
}

Если у вас есть это требование для множества различных полей, вы можете создать пользовательское преобразование. Я обновил учебник вчера, так что посмотрите.

Более конкретно, проверьте Использование ваших собственных преобразований в аннотации в разделе учебника.

Во избежание повторения добавления такой аннотации везде см. Раздел Как избежать повторяющихся аннотаций на той же странице.

Надеюсь, это поможет.

...