当我在没有提供参数的情况下调用服务时为我的服务指定@DefaultValue时,为什么它只能是String,而不是任何其他类型?下面的@DefaultValue(0)抛出一个错误“无法从int转换为String” - 如果我希望默认值是另一种类型怎么办?
@POST
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Path("/createAccount")
public BankActivity createAccount(
@QueryParam("ownerId") @DefaultValue(0) int ownerID,
@QueryParam("accountPin") @DefaultValue("1234") String pin,
答案 0 :(得分:1)
@DefaultValue
表示表单参数,查询参数,cookie和其他一些内容的默认值,如javadoc中所述。这些不同的参数和值作为请求的一部分发送。 http服务器接收它们作为字符串,你的jax-rs容器解析它们并适当地转换它们。 @DefaultValue
将值作为字符串提供,让容器将其转换为提供的值。
因此,只需提供int
值的字符串表示形式,容器将进行正确的转换