JDK5.0新特性:可变参数的本质及示例程序分析
来源:互联网 发布:android布局优化技巧 编辑:程序博客网 时间:2024/06/16 10:37
1、可变参数时再参数类型加“...”,必须是三个点,不能多,例如int...;
2、当定义多个参数时,可变参数必须在后面,例如(String s, int... i),而且,可变参数最多只有一个;
3、可变参数本质上是一个数组,在传递具体参数时可以传递一个数组对象,也可以传递离散的值(若把参数定义为一个数组类型时,则传递具体参数时必须传递数组对象);
4、由于可变参数本质上是一个数组,因此没有可变参数数组,即int[]...是编译错误的。
举例:
public class TestTest
{
public static void main(String[] args)
{
TestTest.sum("lpp:",new int[]{2,4,8,6},new int[]{1, 5 2}); //由于int...变量本质上是一个数组,因此传入数组参数也是正确的
TestTest.sum("lpp:",new int[]{2,4,8,6},1,5,2);
}
public static void sum(String s, int[] in , int... i)
{
System.out.print(s);
int result = 0;
for(int i1 : in) //计算数组元素的和
{
result += i1;
}
for(int i2 : i) //由于int... i的本质是一个数组,因此可以像数组一样进行遍历,计算所有可变常量的和
{
result += i2;
}
System.out.println(result);
}
}
结果:
lpp:28
lpp:28
public class TestTest
{
public static void main(String[] args)
{
TestTest.sum("lpp & ", new int[]{1,1}, new String[]{"fgs ","is ","friends!"});
TestTest.sum("lpp & ", new int[]{1,1}, "fgs ","is ","friends!");
}
public static void sum(String s1, int[] in , String... s2)//数组不是可变参数,因此可以和可变参数共存
{
String s = s1;
for(String ss : s2)
{
s += ss;
}
System.out.println(s);
int result = 0;
for(int i1 : in)
{
result += i1;
}
System.out.println(result);
}
}
结果:
lpp & fgs is friends!
2
知识点:
(1)当定义的可变参数为数组时,具体参数必须传入数组对象,例如new int[]{1, 2, 3},不能传入离散值1, 2, 3;
(2)当定义的可变参数为“参数类型...”这种格式时,传入的具体参数可以为数组对象,也可以为离散值,例如new int[]{1, 2, 3} 或1, 2, 3;
(3)以上两种可变参数的定义都不能直接传入{1, 2, 3}。
(4)虽然可变参数本质上是数组,但数组却不是可变参数,因此在传入参数中数组可以和可变参数共存,这并不违背只能有一个可变参数且必须放在最后的要求。
- JDK5.0新特性:可变参数的本质及示例程序分析
- jdk5.0中的新特性--可变参数
- JDK5.0新特性--可变参数
- JDK5新特性_可变参数类型
- jdk5新特性之可变参数
- JDK5新特性之可变参数
- JDK5新特性之可变参数
- JDK5新特性:可变参数方法
- Java JDK5.0的新特性 增强for循环 自动装箱/拆箱 可变参数 静态导入
- JDK5以后的新特性---增强for循环,静态导入,可变参数
- 黑马程序员-JDK5.0新特性(枚举,增强for,可变参数.........)
- jdk5.0新特性(泛型、枚举、静态导入、自动拆装箱、增强for、可变参数)
- JDK5.0的新特性
- JDK5.0的新特性
- jDK5 的新特性
- JDK5的新特性
- Java基础——JDK5.0的简单新特性(静态导入、可变参数、增强型for循环、自动拆装箱)
- 黑马程序员--01.JDK5部分新特性--01【静态导入】【可变参数数组】【享元设计模式的思想】
- 音频设备驱动移植
- 一步一步实现Spring4 + Hibernate4 + Freemarker2 的注解驱动开发(一. 环境搭建)
- 谁的青春不迷茫
- C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
- POJ 1611 并查集入门
- JDK5.0新特性:可变参数的本质及示例程序分析
- 关于mysql使用中的问题
- 商业中心购买行为和习惯调查方案
- 项目3--时间类
- 数据库简单修复方法
- [循证理论与实践] meta分析系列之一: meta分析的类型
- char型IP和2进制IP互转
- eclipse.ini配置详情
- [循证理论与实践] meta分析系列之二: meta分析的软件