Java 我们可以给布尔类型的@QueryParam一个默认值null吗?

Java 我们可以给布尔类型的@QueryParam一个默认值null吗?,java,jax-rs,Java,Jax Rs,我们可以给布尔类型的@QueryParam一个默认值null吗?如果是,我们怎么做 这是我尝试执行此操作的方式,但仍将false作为默认值: @POST public String setMethod( @QueryParam("value1") @DefaultValue("null") Boolean value1) 您应该尝试不使用DefaultValue。由于value1不是原语,因此它应保持null 所以像这样: @POST 公共字符串集合方法( @QueryPara

我们可以给布尔类型的@QueryParam一个默认值null吗?如果是,我们怎么做

这是我尝试执行此操作的方式,但仍将false作为默认值:

@POST
public String setMethod(
        @QueryParam("value1") @DefaultValue("null") Boolean value1)

您应该尝试不使用
DefaultValue
。由于
value1
不是原语,因此它应保持
null

所以像这样:

@POST
公共字符串集合方法(
@QueryParam(“值1”)布尔值1)
遵循规范:

如果@DefaultValue未与@QueryParam一起使用,且请求中不存在查询参数,则该值将是List、Set或SortedSet的空集合;其他对象类型为空;以及基元类型的默认值

关于您的示例-->
new Boolean(“null”)
实际上等于
false

所以结果是正常的

顺便说一句
:Null不应是有效选项,因为布尔值是二进制值0或1。一旦它进入三态(null、false、true),它就不再是一个真正的布尔值,如果可以接受,最好切换到enum值

像这样的怎么样

公共枚举值{
A.
B
缺席的
}
@职位
公共字符串集合方法(
@QueryParam(“value1”)@DefaultValue(“缺席”)值value1)

您应该在不使用默认值的情况下进行尝试。由于
value1
不是原语,因此它应保持
null

所以像这样:

@POST
公共字符串集合方法(
@QueryParam(“值1”)布尔值1)
遵循规范:

如果@DefaultValue未与@QueryParam一起使用,且请求中不存在查询参数,则该值将是List、Set或SortedSet的空集合;其他对象类型为空;以及基元类型的默认值

关于您的示例-->
new Boolean(“null”)
实际上等于
false

所以结果是正常的

顺便说一句
:Null不应是有效选项,因为布尔值是二进制值0或1。一旦它进入三态(null、false、true),它就不再是一个真正的布尔值,如果可以接受,最好切换到enum值

像这样的怎么样

公共枚举值{
A.
B
缺席的
}
@职位
公共字符串集合方法(
@QueryParam(“value1”)@DefaultValue(“缺席”)值value1)

我不明白,若用户并没有插入任何值,我怎么能得到空值?我不想弄虚作假。我希望它指示用户没有插入任何值。如果查询参数
value1
未设置为post请求
value1
应该有空指针引用。但我看到“false”。即使使用布尔或布尔。当用户没有插入任何值时,我们得到false。我更新了我的答案。。我现在可以看到你们的代码了吗?所以我总是会得到false作为布尔/布尔的默认值?我不明白,若用户并没有插入任何值,我怎么能得到null?我不想弄虚作假。我希望它指示用户没有插入任何值。如果查询参数
value1
未设置为post请求
value1
应该有空指针引用。但我看到“false”。即使使用布尔或布尔。当用户没有插入任何值时,我们得到false。我更新了我的答案。。我现在可以看你的代码了吗?所以我总是会得到false作为boolean/boolean的默认值?boolean的默认值仅为null boolean的默认值仅为null