概念:可接收多个同类型实参,个数不限,使用方式与数组相同。
语法:数据类型... 形参名 //必须定义在形参列表的最后,且只能有一个。
实例代码:
package com.cjh.demo1;
public class Demo5 {
public static void main(String[] args) {
test(1,2,3,4,5);
}
public static void test(int... a) {
for (int i : a) {
System.out.println(i);
}
}
}
可以知道,test方法我传进去了五个int类型的变量,而test方法却只用了一个(int... a)来接收我的实际参数。
另外,可以看见,方法内部在使用这些参数的时候,与数组的使用方法是一样的。
那么为什么不直接用数组传进去,用数组接收呢?
那肯定是因为这个可变长参数是有点东西的。
当我们不确定自己需要传过去多少个同类型参数,或者传过去的数不是数组却需要同样的操作的时候用到这个就非常方便了。
例如:判断接收到的用户名和密码是否为null,是否为"";
package com.cjh.demo1;
public class Demo2 {
public static void main(String[] args) {
//接收到的用户名和密码
String userName = " ";
String passwd = null;
// 正确用户名与密码
String user = "admin";
String pwd = "123456";
boolean end = noNull(userName, passwd);
// 判断是否为空
if (end) {
System.out.println("输入不为空,可以执行登入判断");
if (user.equals(userName) && pwd.equals(passwd)) {
System.out.println("登入成功");
} else {
System.out.println("登入失败");
}
} else {
System.out.println("用户名或密码不能为空");
}
}
public static boolean noNull(String... str) {
for (String string : str) {
if (string == null || string.equals("")) {
return false;
}
}
return true;
}
}