Работая с ванилью @RestController
в Spring.Boot, как вы можете использовать привязку данных по умолчанию и правильно связать вложенные атрибуты Optional
в объекте данных?
С точки зрения кода это класс данных (с использованием lombok для уменьшения шаблона)
@Data
public class SomeData {
Optional<String> name;
}
, который используется в качестве параметра запроса в маршруте GET, например:
@GetMapping("/something")
public void getSomething(SomeData data) {
...
}
Проблема: если нет соответствующего параметра приведенный в запросе, тогда data.name
будет null
вместо Optional.empty
.
То, что я нашел до сих пор: * Optional
обрабатывается правильно, когда вы просто используете его напрямую, например getSomething(Optional<String> name)
* Дополнительные аннотации, такие как @RequestParam
или @Valid
, не влияют на это поведение