Hibernate Validator API
을 사용하여 내 개체의 필드를 확인합니다. 보이는 방법의 예는 다음과 같습니다.JSR 303에서 제약 조건 위반시 예외가 발생합니다.
@NotNull @Size(min = 3, max = 8) String name;
@NotNull @Size(min = 3, max = 16) String surname;
@Size(min = 3, max = 10) String company;
// ...
이제이 문제는 내 개체를 만들 수 있으며 예외가 발생하지 않는다는 것입니다. 예를 들어.
Person p = new Person("a", "b", "c");
이는 런타임 예외를 발생시키지 않고 대신 위반 된 제약 조건이있는 개체를 만듭니다. 위반 된 제약 조건을 얻으려면 Validator
인스턴스를 클라이언트 코드에서 명시 적으로 호출해야합니다. 왜 그런 식으로 만들었는지 완전히 확신 할 수는 없지만, 오브젝트의 필드가 침해 당하면 어떤 예외로 실패하는 오브젝트의 생성이 필요합니다. 그런 식으로 뭔가 :
Person p = new Person("a", "b", "c");
... 예외를 throw합니다. 그리고 잘못된 개체를 만들 수 없습니다. 이것이 내가 원하는 행동입니다.
달성 할 수 있습니까?
당신은 내 요구 사항을 설명하려고하는 단지 기본적인 예입니다. 실제 개체는 30 개의 필드를 가지고 있으며 빌더 패턴 등을 사용하므로 사용자가 제안하는 것과 같은 것이 불가능합니다. 내가 말했듯이, 나는 제약 조건을 위반하면 실패 건설이 필요합니다 – wesleyy