Spring-контроллер Путь не считается постоянным - PullRequest
0 голосов
/ 25 июня 2019

Я бы хотел определить путь контроллера Spring с переменной path как:

private static final String IDS_REGEX = "[" + EnumSet.allOf(MyIdsEnum.class).stream().map(MyIdsEnum.class::getValue)
  .collect(Collectors.joining("|")) + "]";
public static final String MY_PATH = "/path/{id:" + IDS_REGEX + "]}";

А потом в моем контроллере:

 @PostMapping(value = MY_PATH, produces = MediaType.APPLICATION_JSON_VALUE)

Однако IntelliJ выдает ошибку в значении PostMapping:

Attribute value must be constant

Путь уже является статическим финалом, что мне нужно сделать, чтобы превратить его в константу?

Заранее спасибо

1 Ответ

0 голосов
/ 25 июня 2019

Это должна быть постоянная времени компиляции.

Выражение константы времени компиляции - это выражение, обозначающее значение типа примитива или String, которое не завершается внезапно и состоит только из следующего:

  • Литералы примитивного типа и литералы типа String
  • Приводит к примитивным типам и приводит к типу String
  • [...] операторы [...]
  • Выражения в скобках, содержащиеся выражения которых являются константными.
  • Простые имена, которые ссылаются на постоянные переменные.
  • Квалифицированные имена вида TypeName. Идентификатор, который ссылается на постоянные переменные.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...