Я пытаюсь сохранить коллекцию общих объектов в Exception
, и у меня возникают проблемы с выяснением генериков. В частности, я использую Hibernate Validator и хотел бы сохранить собранный список нарушений в рамках исключения для обработки на другом уровне приложения. Вот пример:
Set<ConstraintViolation<User>> violations = validator.validate(user);
if (violations.size() > 0) {
throw new ValidationException("User details are invalid", violations);
}
В Eclipse строка throws
показывает конструктор undefined и предлагает мне изменить подпись конструктора на ValidationException(String, Set<ConstraintViolation<User>>
. Здесь ValidationException:
public class ValidationException extends Exception {
private Set<ConstraintViolation<?>> violations;
public ValidationException() {
}
public ValidationException(String msg) {
super(msg);
}
public ValidationException(String msg, Throwable cause) {
super(msg, cause);
}
public ValidationException(String msg, Set<ConstraintViolation<?>> violations) {
super(msg);
this.violations = violations;
}
public Set<ConstraintViolation<?>> getViolations() {
return violations;
}
}
Однако, я хочу сохранить ValidationException
generic, чтобы я мог использовать его только для проверки User
. Я также пробовал Set<ConstraintViolation<? extends Object>>
, но получаю те же результаты.
Есть ли способ выполнить то, что я пытаюсь сделать?