NotNull не только предполагает String а ещё что это будет константа, вернее так предполагает любая аннотация которая ждёт String.
public enum MessageType {
NOTNULL("not null!!!"), MINVALUE("min value must be ...");
private final String message;
private MessageType(final String message) {
this.message = message;
}
public String getMessage() {
return message;
}
@Override
public String toString() {
return this.message;
}
}
И вызвать потом
@NotNull(message = MessageType.NOTNULL.getMessage())
private String userName;
Такой финт ушами не пройдёт. Даже
MessageType.NOTNULL.name()
метод который возвращает имя Enum'a не пройдёт.
public class ValidationConstants {
private ValidationConstants() {} //Приватный конструктор, что бы нельзя было сделать new
public static final String NOT_NULL = "Not nuull...";
public static final String MIN_VALUE = "Min value must be...";
}
Вот такое вполне прокатит
@NotNull(message = ValidationConstants.NOT_NULL)