单个方法的多个参数

时间:2015-06-04 17:53:13

标签: java void

我不知道这有多简单,或者是否有可能,但我似乎无法找到任何相关信息。对于方法,有一种方法可以设置多个参数。

例如,在这个public void中,当你在java文件中调用该方法时,需要调用一个组件和字符串。

public void testMethod(Component c, String s)
{
    //Do Something
}

有没有办法说出public void testMethod(Component c, String d)public void testMethod(Component c, int i),并且在调用方法时可以指定其中一个?

4 个答案:

答案 0 :(得分:3)

它被称为方法重载。只需将它们创建为单独的方法,编译器将(通常)根据您的输入值推断出正确的方法。

答案 1 :(得分:2)

是的,这是可能的,是一个重要的概念。这种特殊技术称为函数重载。假设您声明了两个函数,如:

  public void testMethod(Component c, String d) {} //function 1

  public void testMethod(Component c, int d) {} //function 2

然后,您可以从main调用这些函数:

  testMethod(c,"Hello")   //calls function 1
  testMethod(c,1)   //calls function 2

答案 2 :(得分:1)

它被称为"方法重载"。只要参数不同,任何两个方法都可以具有相同的名称。例如:

public void doStuff(String string, int integer) {}
public void doStuff(Object object, float flt) {}

这也适用于构造函数:

public Thing(String name, int id) {}
public Thing(Object object, long id) {}

但是,请举例说明以下两种方法:

public void doStuff(String string) {}
public void doStuff(Object object) {}

现在,调用方法doStuff(null)。编译器无法推断使用哪一个;在这种情况下,您将收到编译错误。这也发生在构造函数中(只是为了让它不受影响,构造函数与方法几乎相同)。

答案 3 :(得分:0)

简单地说,你可以。

public void testFunction(Component c, String s) {
    // Handle on a string
}

public void testFunction(Component c, int i) {
    // Handle on integer
}

这称为方法重载。无论哪种类型传递都会导致函数调用使用适当的方法。参数的顺序仍然很重要。