Java变长参数列表(...)

变长参数列表(…)

变长参数列表:表示入参个数不确定,用于需要输入参数,但是参数个数未确定的情况,可以类比构造器模式
可变参数会创造一个数组保存,所以该数组一定是可见的实际类型,实际类型与泛型冲突,可变参数和泛型同时使用会导致编译器警告。

语法:...
如:int...String...Object...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class TestVarargs{
//测试变长参数列表
public static boolean hasEmpty(String... params) {
if(params == null || params.length == 0) { //这一步是为了剔除null
return true;
}else{
for(String param : params) {
//.trim()去除空格后判空
if(param == null || param.trim().isEmpty() ) {
return true;
}
}
}
return false;
}

public static void main(String[] args) {
hasEmpty(" ","a","b"); //true
hasEmpty("a","b"); //false
hasEmpty(null, "a"); //false
}
}

变长参数列表 和 数组 可以相互转换

入参为可变长参数...,传入数组[],不会报错。如:

1
2
3
4
5
6
7
8
9
10
11
12
public ClassPathXmlApplicationContext(String[] configLocations, boolean refresh, ApplicationContext parent) {
super(parent);

setConfigLocations(configLocations); //传入String[]

if(refresh) refresh();
}

//入参要求String...,传入String[],表现正常
public void setConfigLocations(String... locations) {
//...
}
-------------本文结束感谢您的阅读-------------

本文标题:Java变长参数列表(...)

文章作者:DragonBaby308

发布时间:2019年07月31日 - 21:52

最后更新:2019年09月22日 - 10:09

原始链接:http://www.dragonbaby308.com/Java-varargs/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

急事可以使用右下角的DaoVoice,我绑定了微信会立即回复,否则还是推荐Valine留言喔( ఠൠఠ )ノ
0%