Вы должны попробовать без DefaultValue
. Так как value1
не является примитивом, он должен оставаться null
.
Итак, вот так:
@POST
public String setMethod(
@QueryParam("value1") Boolean value1)
после spe c:
Если @DefaultValue не используется вместе с @QueryParam, а параметр запроса отсутствует в запросе, значение будет пустой коллекцией для List, Set или SortedSet; нуль для других типов объектов; и значение по умолчанию для примитивных типов.
Что касается вашего примера -> new Boolean("null")
фактически равно false
.
Таким образом, результат нормальный.
BTW
: Нуль не должен быть допустимым параметром, поскольку логическое значение является двоичным значением 0 или 1. Как только оно переходит в три состояния ( null, false, true) больше не является истинным логическим значением и, возможно, если это приемлемо, предпочтительнее переключиться на значение enum.
Как насчет этого?
public enum Value {
A ,
B,
ABSENT
}
@POST
public String setMethod(
@QueryParam("value1") @DefaultValue("ABSENT") Value value1)