你如何使用变量参数来包装某个函数来获取Object []

Jas*_*son 2 java

我有一个方法,它采用以下格式的密钥及其相关参数.

public String foo(String key, Object[] parameters) {..}
Run Code Online (Sandbox Code Playgroud)

我宁愿使用可变参数格式传递参数.我该怎么办?

我试过public String foo(String key, Object... parameters) {..}- 但这似乎与上面给出的方法定义相冲突.

我应该执行以下操作并将其包装到Object []方法中吗?

public String foo(String key, Object a) {..}
public String foo(String key, Object a, Object b) {..}    
public String foo(String key, Object a, Object b, Object c) {..}
Run Code Online (Sandbox Code Playgroud)

cdh*_*wie 6

只需将现有函数的定义更改为

public String foo(String key, Object... parameters) {..}
Run Code Online (Sandbox Code Playgroud)

Java中的可变方法机制是用于在调用站点创建数组并将其传入的语法糖.因此,此方法应与现有源代码编译类兼容.

varargs上的Java文档:

最后一个参数类型之后的三个句点表示最终参数可以作为数组参数序列传递.