Парсеры Univocity / Требуемая проверка (NotNull)

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

1 ответ

Решение

ОБНОВЛЕНИЕ: Версия 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;
}

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

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

Чтобы избежать повторения добавления такой аннотации везде, обратитесь к разделу " Избегайте повторяющихся аннотаций на одной странице".

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

Другие вопросы по тегам