Парсеры 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;
}
Если у вас есть это требование для многих различных полей, вы можете создать пользовательское преобразование. Я обновил учебник вчера, так что посмотрите там.
Более конкретно, проверьте раздел " Использование собственных конверсий в аннотациях " учебника.
Чтобы избежать повторения добавления такой аннотации везде, обратитесь к разделу " Избегайте повторяющихся аннотаций на одной странице".
Надеюсь это поможет.