Используйте @Pattern для проверки UUID или UUID.toString().JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Используйте @Pattern для проверки UUID или UUID.toString().

Сообщение Anonymous »

Как мы знаем, аннотацию @Pattern можно использовать только для реализации CharSequence, например String. Таким образом, следующая проверка UUID не будет работать.

Код: Выделить всё

@Pattern(regexp="^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$")
private UUID                id;
Есть ли способ использовать аннотацию @Pattern непосредственно на UUID или на основе UUID.toString()?

АКТУАЛЬНЫЙ СЦЕНАРИЙ:

Код: Выделить всё

public class IndexController {
...
public ResponseEntity postIndexes(@ApiParam(value = INDEXES_DESC, required = true) @Valid @RequestBody @Size(min = 1, max = 2000) List indexes) {
...
}
...
}

@JsonInclude(JsonInclude.Include.NON_NULL)
public class Index implements Serializable {
@ApiModelProperty(value = ID_DESC, example = SINGLE_ID)
@NotNull
private UUID                id;
...
}
Когда пользователь вводит тело запроса в формате JSON, как показано ниже

Код: Выделить всё

[
{
...
"id": "40336c2b-591a-4472-a270-A46339",
...
}
]
Он не похож на обычный UUID. Последняя часть должна содержать 12 цифр и не должна содержать заглавных букв.
Однако такой ввод будет успешно преобразован в действительный индекс с UUID «40336c2b-591a-4472-a270-000000a46339».
Мы хотим, чтобы этот тип ввода не работал, добавляя аннотацию проверки.

Подробнее здесь: https://stackoverflow.com/questions/539 ... d-tostring
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»