有 3 个参数但接受一个参数的方法?

Method with 3 parameters but accepting one?

有没有办法让 Method 接受 3 个或更多参数但可以接受 1 个?

public void getAllSongs(String one, String two, String Three){
dosomething
}
getAllSongs("tada");

也许不是最好的解释方式,但我不知道怎么办。 我想以更多方式使用相同的方法.. 有可能吗?

另一种方法是编写类似

的代码
public void getAllSongs(String... songs){
    for(String song : songs){
       //do somethihg
    }
}

这样你就可以像这样调用你的代码

getAllSongs("song");
getAllSongs("song1", "song2"......)

您可以使用方法重载:

public void getAllSongs(String one ){
  getAllSongs(one,null,null);
}

public void getAllSongs(String one, String two, String Three){
dosomething
}
getAllSongs("tada");

可以像这样使用可变数量的参数调用方法

public void getAllSongs(String ... songs)

我不知道你到底想问什么。 不过我觉得应该是

    public void getAllSongs(String... number) {
    // do something
    }

使用不同数量的参数重载相同的方法,如下所示:

public void getAllSongs(String arg1) {
    getAllSongs(arg1, "default arg2", "default arg3");
}

public void getAllSongs(String arg1, String arg2) {
    getAllSongs(arg1, arg2, "default arg3");
}

public void getAllSongs(String arg1, String arg2, String arg3) {
    // do stuff with args
}

当然可以,它叫做多态或者更具体地说是方法重载:

在Java中,可以在class中定义两个或多个同名方法,前提是参数列表或参数不同。这个概念被称为方法重载。

看看Polymorphism in Java – Method Overloading and Overriding

示例:

void demo (int a) {
   System.out.println ("a: " + a);
}
void demo (int a, int b) {
   System.out.println ("a and b: " + a + "," + b);
}

您可以通过使用(重载)具有不同数量输入值的方法来解决它。用户可以调用仅具有 one/two/three... 值的那个。如有必要,这个调用具有更多值的那个。可能是这样的:

public void getAllSongs(String one){
  getAllSongs(one, null, null)
}

public void getAllSongs(String one, String two){
  getAllSongs(one, two, null)
}

public void getAllSongs(String one, String two, String Three){
dosomething
}

呼叫可以是:

getAllSongs("bla","blub");

使用数组的另一种可能性:

public void getAllSongs(ArrayList<String> songs){ 
do something 
}; 

List<String> songs= new ArrayList<String>();
songs.add("bla");
songs.add("blub");
getAllSongs(songs);

ArrayList 是一个数组,其大小取决于其中值的数量。在你的函数中你可以迭代这个数组

没有。 但它可能在 C++/C# 中(为参数分配默认值) 例如。 :

public void getAllSongs(String one, String two=string.Empty, String Three=string.Empty){
dosomething
}
getAllSongs("tada");

但是,您也可以使用模式

    public void getAllSongs(String one, String two, String Three){
        dosomething
        }
    public void getAllSongs(String one, String two){
        getAllSongs(one,two,"");
        }
    public void getAllSongs(String one){
        getAllSongs(one,"","");
        }
        getAllSongs("tada");