使用Java REST API接收两次相同的参数名

使用Java REST API接收两次相同的参数名,java,rest,Java,Rest,为此: @RequestMapping("/foo") public String foo(@RequestParam(value="test", defaultValue="foo") String t) { return t; } 我可以使用curl localhost:8080/foo?test=helloWorld调用我的函数,它将返回helloWorld。但是,我需要创建一个API,其中相同的参数可以被给定x次: curl localhost:8080/foo?test=h

为此:

@RequestMapping("/foo")
public String foo(@RequestParam(value="test", defaultValue="foo") 
String t) {
    return t;
}
我可以使用
curl localhost:8080/foo?test=helloWorld
调用我的函数,它将返回
helloWorld
。但是,我需要创建一个API,其中相同的参数可以被给定x次:

curl localhost:8080/foo?test=helloWorld&test=helloAgain&test=oneMoreTime
现在我们开始:

@RequestMapping("/foo")
public String foo(@RequestParam(value="test", defaultValue="foo") 
String[] t) {
    return t[1];     // return helloAgain
}
现在我可以通过改变索引得到所有三个值。这项工作很好,但我有一个简单的问题:如何选择数组长度?我不知道有多少次我会收到相同的参数


提前感谢您的帮助。

如果您想在@RequestParam中重复使用相同的参数x次,您可以使用数组(如第二个示例),但您不能在那里“选择”(定义)大小,但可以获得长度。正确的轴是:

    @RequestMapping("/foo")
public String foo(@RequestParam(value="test") String[] t) {

   Integer size = str.length;
 return t[1];     // return helloAgain

}

你说的“选择”是什么意思?如果使用两个
test
参数调用该方法,则
t.length
将为2,如果使用5调用该方法,则
t.length
将为5…您有一个数组作为输入参数,但您的foo函数返回单个字符串。您在
t[]
数组中有所有测试元素,但是您需要如何处理这些值?我们无法告诉您您的需求是什么。你的代码应该能解决一个问题。你告诉我们你的代码,而不是你必须解决的问题。所以,我会说:返回第一个参数。还是最后一个。还是在中间加入“42”?