当我为我的服务指定 @DefaultValue 时,在没有提供参数的情况下调用它时,为什么它只能是字符串,而不能是任何其他类型?下面的 @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,
最佳答案
@DefaultValue
表示表单参数、查询参数、cookie 和其他一些参数的默认值,如 javadoc 中所述。这些不同的参数和值作为请求的一部分发送。 http 服务器将它们作为字符串接收,并且您的 jax-rs 容器会解析它们并进行适当的转换。 @DefaultValue
以字符串形式提供值,让容器将其转换为提供的值。
因此,只需提供 int
值的字符串表示形式,容器就会进行正确的转换
关于java - 为什么我无法指定 @DefaultValue 的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23233052/