gpt4 book ai didi

java - 在 Jersey 中将 int 数组作为 @QueryParam 发送

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:05:15 26 4
gpt4 key购买 nike

我正在尝试编写一个 GET 方法并将 int 数组作为 QueryParam 发送给它。这就是我想要做的:

@GET
@Path("/test")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response test(@Context HttpServletRequest request,
@QueryParam("list") final int list[])
{
System.out.println(list.length);
return Response.ok().build();
}

这会导致 500 内部服务器错误。当我尝试使用整数列表时,它运行良好。 Jersey 不支持数组作为参数还是我做错了什么?

最佳答案

在不支持数组作为参数的 jersey 中的实现。由于您需要将它作为数组传递,只需使用 Arrays.asList(arr)

将列表转换为数组即可传递它

java 文档说方法参数的类型应该是:

1) Be a primitive type;
2) Have a constructor that accepts a single String argument;
3) Have a static method named valueOf or fromString that accepts a single String argument (see, for example, Integer.valueOf(String))
4) Be List, Set or SortedSet, where T satisfies 2 or 3 above. The resulting collection is read-only.

有时参数可能包含多个相同名称的值。如果是这种情况,则可以使用 4) 中的类型来获取所有值。

因此在这种情况下无法使用数组。

关于java - 在 Jersey 中将 int 数组作为 @QueryParam 发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39289297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com