Установка атрибутов аннотации с использованием константных выражений - PullRequest
0 голосов
/ 18 июня 2019

У меня есть простой пружинный контроллер, который в основном возвращает сообщения на основе некоторых параметров запроса.Я получаю параметры запроса, используя аннотацию @Requestparam.Атрибут defaultValue @Requestparam ожидает константное выражение.Вы заметите, что я использую константу, чтобы установить значение параметра.То, что я пытаюсь понять, это то, почему я не могу использовать ниже:

private static final String LONG_MAX_VALUE = Long.toString(Long.MAX_VALUE)

, которое должно вычисляться как постоянная строка, в то время как:

private static final String LONG_MAX_VALUE = "9223372036854775807"

работает как шарм.Обратите внимание, что само значение не имеет значения.Я должен подумать, что оба будут приводить к константному выражению или что мне не хватает?

// simple controller in spring MVC that returns messages based on query parameters
// private static final String LONG_MAX_VALUE = Long.toString(Long.MAX_VALUE);
private static final String LONG_MAX_VALUE = "9223372036854775807";

@GetMapping()
public String getMessages(@RequestParam(name = "max", defaultValue = LONG_MAX_VALUE) Long max,
            @RequestParam(name = "count", defaultValue = "20") int count, Model model) {
        model.addAttribute("messages", messageRepository.findMessages(max, count));
        return "messages";
    }

Ошибка, которую я получаю при использовании

private static final String LONG_MAX_VALUE = Long.toString(Long.MAX_VALUE)

,

"Значение атрибута аннотации RequestParam.defaultValue должно быть константным выражением"

...