Цель @NotNull.Список

когда я посмотрел среди стандартных ограничения в API проверки бобов (JSR-303) я нашел NotNull.List Примечание. Описание:

определяет несколько аннотаций @NotNull на одном элементе

это допустимый синтаксис:

@NotNull.List({@NotNull, @NotNull})
private Object myObject;

но это не имеет смысла. Любой объект имеет значение null или нет. Когда вы будете использовать эту аннотацию?

есть несколько других подобных аннотаций, таких как AssertFalse.List и AssertTrue.List.

2 ответов


вы можете иметь несколько аннотаций @NotNull, которые являются взаимоисключающими на основе атрибута group.

@NotNull.List({@NotNull(groups=Foo.class,message="Some message!"), 
               @NotNull(groups=bar.class, message="Some other message!"})
private Object myObject;

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

посмотреть здесь для получения более подробной информации.


Что касается случая @NotNull, может потребоваться несколько аннотаций @NotNull для разных групп проверки, как объяснил @dfb. Но то же самое может быть осуществляется путем перечисления этих групп в группы атрибутов. Это хорошо объясняется здесь с тестовыми случаями

в API проверки бобов javadoc, для каждой аннотации ограничения, есть соответствующие .Список аннотаций. Например, для @NotNull, есть @NotNull.Список, для которого JavaDoc говорит:

определяет несколько аннотаций @NotNull на одном элементе

Что бы вы сделали с несколькими аннотациями @NotNull, которые вы не удается выполнить с одним @NotNull?