JAVA类型后面跟3个点(可变长度参数列表)
2013-01-07 10:43
435 查看
JAVA1.5支持了一种新的参数类型--可变长度参数列表,格式是类型后面加...,例如String...、Object...等
这个和我们熟知的Object[]数组参数有些区别,且更加方便灵活些,下面简单介绍下:
先写一个熟知的传统数组参数方法
在调用printParam时,我们无论如何都要传递一个String类型的数组过去,然而我们在工作时有时候会遇到需要这个方法,但是确实又没必要传递所有参数,
如同上面例子,我可能只需要传递int类型参数,但是String[]参数我并没有,这样我任然要传递一个空的String[]否则会报错。所以这种参数很死板,用起来不方便。
但是Stirng...就不需要这么麻烦了,看下面这个方法:
public class Params {
public static void printParams(String... str){
if(str.length == 0){
System.out.println("无参数的printParams()方法");
}
else{
for (String string : str) {
System.out.println("带参的printParams("+string+")方法");
}
}
}
public static void main(String[] args) {
printParams();
printParams("a","b","c");
printParams(new String[]{"A","B","C"});
}
}
这里我们可以随意调用,有不带参数的printParams(),而且不报错,另外他还支持2种不同的写法可以多个Stirng的传递,也可以单个String[]数组的传递
这位我们提供了很大的方便。
这里需要注意的是:
一个类里面如果有了printParams(String... str)方法,就不能存在printParams(String[] str)方法,但是可以存在printParams()方法。
而且如果我们执行printParams()方法时,会优先查找printParams()方法,只有在printParams()方法不存在的时候才会去找printParams(String... str)方法
这个和我们熟知的Object[]数组参数有些区别,且更加方便灵活些,下面简单介绍下:
先写一个熟知的传统数组参数方法
public class Param { public static void printParam(int i,String[] str){ if(str.length == 0){ System.out.println("无参数的printParams()方法"); } else{ for (String string : str) { System.out.println("带参的printParams("+string+")方法"); } } } public static void main(String[] args) { printParam(2,new String[]{"A","B","C"}); } }
在调用printParam时,我们无论如何都要传递一个String类型的数组过去,然而我们在工作时有时候会遇到需要这个方法,但是确实又没必要传递所有参数,
如同上面例子,我可能只需要传递int类型参数,但是String[]参数我并没有,这样我任然要传递一个空的String[]否则会报错。所以这种参数很死板,用起来不方便。
但是Stirng...就不需要这么麻烦了,看下面这个方法:
public class Params {
public static void printParams(String... str){
if(str.length == 0){
System.out.println("无参数的printParams()方法");
}
else{
for (String string : str) {
System.out.println("带参的printParams("+string+")方法");
}
}
}
public static void main(String[] args) {
printParams();
printParams("a","b","c");
printParams(new String[]{"A","B","C"});
}
}
这里我们可以随意调用,有不带参数的printParams(),而且不报错,另外他还支持2种不同的写法可以多个Stirng的传递,也可以单个String[]数组的传递
这位我们提供了很大的方便。
这里需要注意的是:
一个类里面如果有了printParams(String... str)方法,就不能存在printParams(String[] str)方法,但是可以存在printParams()方法。
而且如果我们执行printParams()方法时,会优先查找printParams()方法,只有在printParams()方法不存在的时候才会去找printParams(String... str)方法
相关文章推荐
- JAVA类型后面跟3个点(可变长度参数列表)
- java类型后面加三个点——可变长度参数列表
- java函数参数后面加三个点——可变长度参数列表
- Python中函数参数(默认、列表、可变长度、字典类型)
- java动态参数列表即可变参数【可变的参数类型,也称为不定参数类型。英文缩写是varargus,还原一下就是variable argument type。】
- c#基础之长度可变类型相同的参数列表
- Java基本数据类型数组与可变长度参数
- c#基础之长度可变类型相同的参数列表
- java语言基础(33)——面向对象(父类中没有无参构造编译报错——无法将类 xxx中的构造器 xxx应用到给定类型 实际参数列表和形式参数列表长度不同)
- Javascript可变长度参数列表 - Arguments对象
- 可变长参数列表误区与陷阱——va_arg不可接受的类型
- Java可变参数列表说明(int... array)
- 深入了解JAVA可变长度的参数(Varargs)
- 深入java--可变参数列表
- Java方法的可变参数类型
- 可变参数列表 java
- java可变长度参数
- Java方法的可变参数类型
- Java方法的可变参数类型
- Java高新技术1---增强for循环 ---装箱与拆箱享元设计模式--自己写枚举--可变长度的参数