Java:向方法发送多个参数

这是我的场景:

我得调用一种方法。 让参数为:Parameter1,Parameter2,..,..,参数N但是要发送给方法的参数可能会在每种情况下都发生变化。

情况1:仅发送Parameter1

情况2:发送参数组合

情况3:发送所有参数

在Java中实现这一目标的最佳方法是什么?

解决方案取决于问题的答案 – 所有参数是否都是相同类型,如果是这样,每个参数都会被视为相同?

如果参数不是同一类型或更重要的是不会被视为相同,那么你应该使用方法重载:

public class MyClass { public void doSomething(int i) { ... } public void doSomething(int i, String s) { ... } public void doSomething(int i, String s, boolean b) { ... } } 

但是,如果每个参数都是相同的类型并且将以相同的方式处理,那么您可以在Java中使用变量argsfunction:

 public MyClass { public void doSomething(int... integers) { for (int i : integers) { ... } } } 

显然,当使用变量args时,你可以通过索引访问每个arg,但我建议不要这样做,因为在大多数情况下它会暗示你的设计中存在问题。 同样,如果您在迭代参数时发现自己正在进行类型检查,那么您的设计需要进行审核。

假设你有void方法打印许多对象;

 public static void print( Object... values){ for(Object c : values){ System.out.println(c); } } 

上面的例子我使用vararge作为接受从0到N的值的参数。

来自评论: 如果2个字符串和5个整数怎么办?

回答:

 print("string1","string2",1,2,3,4,5); 

你可以使用varargs

 public function yourFunction(Parameter... parameters) 

也可以看看

Java多参数点符号 – Varargs