有 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");
有没有办法让 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");