Перед сохранением данных часто нужно проверить входной объект: email не пустой, возраст нормальный, имя задано. Соберём небольшую ручную валидацию без фреймворков.
Пусть есть DTO:
record CreateUserRequest(
String email,
String name,
int age
) {}
Ошибки удобно хранить списком:
List<String> validate(CreateUserRequest request) {
List<String> errors = new ArrayList<>();Проверим обязательные строки:
if (request.email() == null || request.email().isBlank()) {
errors.add("email is required");
}
if (request.name() == null || request.name().isBlank()) {
errors.add("name is required");
}Добавим простые бизнес-правила:
if (request.age() < 18) {
errors.add("age must be 18 or greater");
}
return errors;
}Теперь код обработки становится понятным:
var errors = validate(request);
if (!errors.isEmpty()) {
return errors;
}
Можно вынести повторяющуюся проверку в метод:
boolean blank(String value) {
return value == null || value.isBlank();
}И использовать короче:
if (blank(request.email())) {
errors.add("email is required");
}Ручная валидация полезна для небольших задач, CLI-утилит и мест, где не хочется тащить фреймворк. Главное, возвращать все ошибки сразу, а не падать на первой.
👉 Java Ready | #практика