您的位置:首页 > 编程语言 > Java开发

java 关于不定长参数的方法设计 参数个数不定的方法设计

2015-05-08 00:00 295 查看
摘要: 在java SE 5.0 以前的版本中,每个java方法都是有固定数量的参数。然而,现在的版本提供了可以用可变的参数数量调用的方法(有时候称之为“可变参”方法)。相信大家都见过和用过C语言中的printf函数,它的参数就是不定的。
在java中大家很熟悉的System.out.printf("max= %f;\n", m);
System.out.printf("%d", n);
System.out.printf("%d,%s", n,"VariArgs");
以上三条语句中,前两条调用的是含有两个参数的,第三条调用时就是含有三个参数的。但是他们调用的都是同一个方法。。。

java 关于不定长参数的方法设计

在java SE 5.0 以前的版本中,每个java方法都是有固定数量的参数。然而,现在的版本提供了可以用可变的参数数量调用的方法(有时候称之为“可变参”方法)。相信大家都见过和用过C语言中的printf函数,它的参数就是不定的。
在java中大家很熟悉的System.out.printf("max= %f;\n", m);
System.out.printf("%d", n);
System.out.printf("%d,%s", n,"VariArgs");
以上三条语句中,前两条调用的是含有两个参数的,第三条调用时就是含有三个参数的。但是他们调用的都是同一个方法。。。

这里可以参考帖子末尾的博客链接,也可以参考《Java核心技术 卷I 基础知识》Page180内容。

这里简单贴上一段正确的示例代码,如下:

/**
* @File TestBDCC.java
* @date 2015年5月8日
* @auther 007
*/
/**
* @author 007
* BDCC关于不定长参数方法设计
*/
public class TestBDCC {
public static void main(String[] args) {
double m;
test();
test("love");
test("honest", "real");
test("beauty", "hello", "world");

test1("hello");
test1("love", "hello");
test1("beauty", "real", "world");

m=getMax(1,2,3.3,5,6,7,8,9,7.9,10.8);
System.out.println("max="+m);
System.out.printf("max= %f;\n", m);

}

public static void test(String... args) {
System.out.println(args.getClass());
for (String arg : args) {  //增强型的for循环,或者叫for each循环
System.out.println(arg);
}
}
public static void test1(String arg, String... args) {
System.out.println(arg);
System.out.println("----------------");
for (String s : args) {
System.out.println(s);
}
}

public static double getMax(double... values)
{
double maxValue = Double.MIN_VALUE;
for (double d : values) {
if (d>maxValue) {
maxValue=d;
}
}
return maxValue;
}
}


本文还参考下面链接的博客

简单介绍Java的不定长度参数 - tianlihu - ITeye技术网站
http://tianlihu.iteye.com/blog/370854
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息