首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java:向方法发送多个参数

Java:向方法发送多个参数
EN

Stack Overflow用户
提问于 2013-07-24 14:34:46
回答 3查看 202.2K关注 0票数 31

下面是我的场景:

我得打电话给一个方法。让参数是: Parameter1,Parameter2,.,..,参数N,但是要发送给该方法的参数在每种情况下都可能发生变化。

案例1:只发送 Parameter1

案例2:发送参数组合

案例3:所有参数都被发送

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-24 14:54:09

解决方案取决于问题的答案--是否所有参数都将是相同的类型,如果是的话,每个参数都会被处理相同吗?

如果参数不是相同的类型,或者更重要的是不会被相同的处理,那么您应该使用方法重载:

代码语言:javascript
复制
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中使用变量args特性:

代码语言:javascript
复制
public MyClass 
{
  public void doSomething(int... integers)
  {
    for (int i : integers) 
    {
      ...
    }
  }
}

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

票数 61
EN

Stack Overflow用户

发布于 2013-07-24 14:37:15

假设您有打印多个对象的void方法;

代码语言:javascript
复制
public static void print( Object... values){
   for(Object c : values){
      System.out.println(c);
   }
}

上面的例子中我使用vararge作为参数,它接受0到N之间的值。

注释:如果2个字符串和5个整数呢??

答案:

代码语言:javascript
复制
print("string1","string2",1,2,3,4,5);
票数 19
EN

Stack Overflow用户

发布于 2013-07-24 14:38:24

您可以使用瓦拉格

代码语言:javascript
复制
public function yourFunction(Parameter... parameters)

也见

Java多参数点表示法- Varargs

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17837117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档