为什么我要将String []传递给等待vargargs的方法

时间:2015-06-19 11:29:25

标签: java arrays string

我有这样的问题:当我将String []传递给使用String的方法时...我看到这样的错误信息

  

类型Folder中的方法changeFolderContent(String,FolderAction,String ...)不适用于参数(String,FolderAction,String [])

@POST
@Path("{id}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
void changeFolderContent(@PathParam(ID) String folderId,
                         @FormParam("action") FolderAction action,
                         @FormParam("item") String... item);


private void changeFolderContent() {
    folderClient.changeFolderContent(folderId, new FolderAction(), item);
}

1 个答案:

答案 0 :(得分:1)

问题似乎出现在第二个参数中,唯一一个不基于java.lang类的参数。

这是一个非常短的测试程序的例子:

public class Test {
  public static void main(String[] args) {
    test("aa", 3, new String[]{"aa","bbb"});
  }

  private static void test(String s1, Integer i1, String... s2){
    for(String s : s2){
      System.out.println(s);
    }
  }
}

它编译并运行,输出:

aa
bbb

我建议尝试将失败的案例删除到类似的东西,删除重现问题所不需要的所有内容。