JAVA SE5为什么提出可变形参的概念? JAVA 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public static void testArray() { /** * 用countString(String[] arr)能做到的, countString1(String... arr) 都能做到。 * 可是反过来是不成立的。 * 比如:我只需要传入一个Sting,而不是一个Stirng[]的数组,那么countString(String[] arr)就做不到。 */ String[] arr0 = {"hello","hello"}; System.out.println(countString(arr0)); System.out.println(countString1(arr0)); System.out.println(countString1("hello")); System.out.println(countString1("hello","world","home")); } /** * 可以接受的参数:String[]数组,单个String,多个String的列表 * @param arr * @return */ private static int countString1(String... arr){ return arr.length; } /** * 只能接受String[]数组作为参数 * @param arr * @return */ private static int countString(String[] arr){ return arr.length; } 数组的功能是可变参数功能的子集,凡是用数组做形参的地方都可以用可变参数替换。例如main方法:public static main(String[] args) { //待执行的代码}可以写成public static main(String... args) { //待执行的代码}可变参数的功能比数组更为强大,除了能够接收数组类型的实参外 ,还能够接收个数不限的单个实参。写成“String... args”这样子,实际上是提醒编译器将接收到的若干单个实参整理成数组传给args,args归根结底接收到的还是数组。当然,你若直接给args传一个数组也没有错,这样反而省的编译器去整理了。总结一下:可变参数是数组参数功能上的扩展。 补充一下: 可变参数只能是参数列表的最后一个。例如:public void method(int a, String... args) { //正确}public void method(String... args, int a) { //错误} 感谢~原来单个String无法使用[]呀。 真是误人子弟的回答啊~误人子弟不至于吧,我觉得这种问题各有各的看法而已。我一直觉得java的可变长参数和泛型是鸡肋,我都可以用其他方式替代,那还有什么存在的价值。所以我一般都不用可变长参数和泛型。可变长参数用数组替代,泛型我一般都直接接受Object,省事多了。 真是误人子弟的回答啊~误人子弟不至于吧,我觉得这种问题各有各的看法而已。我一直觉得java的可变长参数和泛型是鸡肋,我都可以用其他方式替代,那还有什么存在的价值。所以我一般都不用可变长参数和泛型。可变长参数用数组替代,泛型我一般都直接接受Object,省事多了。你不觉得可变参数 要比 数组参数 灵活的多么 真是误人子弟的回答啊~误人子弟不至于吧,我觉得这种问题各有各的看法而已。我一直觉得java的可变长参数和泛型是鸡肋,我都可以用其他方式替代,那还有什么存在的价值。所以我一般都不用可变长参数和泛型。可变长参数用数组替代,泛型我一般都直接接受Object,省事多了。你不觉得可变参数 要比 数组参数 灵活的多么我觉得应该是数组更灵活吧,在运行的时候都能够更改参数个数,但是可变参数能做到吗?各人喜好而已,我的想法也不一定是对的。只是我个人的编程习惯而已。 真是误人子弟的回答啊~误人子弟不至于吧,我觉得这种问题各有各的看法而已。我一直觉得java的可变长参数和泛型是鸡肋,我都可以用其他方式替代,那还有什么存在的价值。所以我一般都不用可变长参数和泛型。可变长参数用数组替代,泛型我一般都直接接受Object,省事多了。你不觉得可变参数 要比 数组参数 灵活的多么我觉得应该是数组更灵活吧,在运行的时候都能够更改参数个数,但是可变参数能做到吗?各人喜好而已,我的想法也不一定是对的。只是我个人的编程习惯而已。我觉得你长得像 主持人 彭宇 请问如何将date类写的下面的类改写成为calendar类 删我贴者,我咒你一辈子买方便面没调料包 在JDK1.5中怎么把图片在面板中插入了???急 数据结构与算法我应该看哪个教材比较好 java读取文本文件格式的问题? 类的高级加载问题,请帮帮我丫。在线等待指点呢 请问在java里主要用什么实现动画? JavaBean中数据库的连接 我想学习JAVA编程,推荐几本好书?? (哪有IBM Visual Age for Java v4.0(3.5)【Enterprise】的下载!!) 这个注释有什么特别之处? JNA回调函数的使用
public static void testArray() {
/**
* 用countString(String[] arr)能做到的, countString1(String... arr) 都能做到。
* 可是反过来是不成立的。
* 比如:我只需要传入一个Sting,而不是一个Stirng[]的数组,那么countString(String[] arr)就做不到。
*/
String[] arr0 = {"hello","hello"};
System.out.println(countString(arr0));
System.out.println(countString1(arr0));
System.out.println(countString1("hello"));
System.out.println(countString1("hello","world","home"));
}
/**
* 可以接受的参数:String[]数组,单个String,多个String的列表
* @param arr
* @return
*/
private static int countString1(String... arr){
return arr.length;
}
/**
* 只能接受String[]数组作为参数
* @param arr
* @return
*/
private static int countString(String[] arr){
return arr.length;
}
public static main(String[] args) {
//待执行的代码
}
可以写成
public static main(String... args) {
//待执行的代码
}可变参数的功能比数组更为强大,除了能够接收数组类型的实参外 ,还能够接收个数不限的单个实参。
写成“String... args”这样子,实际上是提醒编译器将接收到的若干单个实参整理成数组传给args,
args归根结底接收到的还是数组。当然,你若直接给args传一个数组也没有错,这样反而省的编译器去整理了。总结一下:可变参数是数组参数功能上的扩展。
public void method(int a, String... args) { //正确}public void method(String... args, int a) { //错误
}
感谢~原来单个String无法使用[]呀。
真是误人子弟的回答啊~误人子弟不至于吧,我觉得这种问题各有各的看法而已。我一直觉得java的可变长参数和泛型是鸡肋,我都可以用其他方式替代,那还有什么存在的价值。所以我一般都不用可变长参数和泛型。可变长参数用数组替代,泛型我一般都直接接受Object,省事多了。
真是误人子弟的回答啊~误人子弟不至于吧,我觉得这种问题各有各的看法而已。我一直觉得java的可变长参数和泛型是鸡肋,我都可以用其他方式替代,那还有什么存在的价值。所以我一般都不用可变长参数和泛型。可变长参数用数组替代,泛型我一般都直接接受Object,省事多了。你不觉得可变参数 要比 数组参数 灵活的多么
真是误人子弟的回答啊~误人子弟不至于吧,我觉得这种问题各有各的看法而已。我一直觉得java的可变长参数和泛型是鸡肋,我都可以用其他方式替代,那还有什么存在的价值。所以我一般都不用可变长参数和泛型。可变长参数用数组替代,泛型我一般都直接接受Object,省事多了。你不觉得可变参数 要比 数组参数 灵活的多么我觉得应该是数组更灵活吧,在运行的时候都能够更改参数个数,但是可变参数能做到吗?各人喜好而已,我的想法也不一定是对的。只是我个人的编程习惯而已。
真是误人子弟的回答啊~误人子弟不至于吧,我觉得这种问题各有各的看法而已。我一直觉得java的可变长参数和泛型是鸡肋,我都可以用其他方式替代,那还有什么存在的价值。所以我一般都不用可变长参数和泛型。可变长参数用数组替代,泛型我一般都直接接受Object,省事多了。你不觉得可变参数 要比 数组参数 灵活的多么我觉得应该是数组更灵活吧,在运行的时候都能够更改参数个数,但是可变参数能做到吗?各人喜好而已,我的想法也不一定是对的。只是我个人的编程习惯而已。我觉得你长得像 主持人 彭宇