Как вернуть пустой объект вместо возвращаемого типа метода? Java
Есть метод endpoint, который должен возвращать всегда 1 объект, но объекта может не быть в базе.
Если объекта нет, то в response должен попадать пустой объект: {}
Проблема в том, тип метода не даёт возможности сделать приведение пустого объекта к возвращаемому типу.
public @Nonnull
Responses.Profile findById(@Nonnull Context context) {
var id = id(context).orElseThrow(NotFoundException::new);
return profileService.findById(id)
.map(Responses::profile)
.orElseGet(() -> (Responses.Profile) Responses.emptyObject());
Response.Profile:
@lombok.Data
@lombok.Builder
public static class Profile {
public String id;
public String phone;
@JsonRawValue
public String form;
}
Ошибка:
class java.util.ImmutableCollections$MapN cannot be cast to class app.controllers.Responses$Profile(java.util.ImmutableCollections$MapN is in module java.base of loader 'bootstrap'; app.controllers.Responses$Profile is in unnamed module of loader 'app')