JDK1.5后的新特性之一:可变参数
2024-10-07 03:10:13
Java中的可变参数
Java1.5后出现了一个新特性,即可变参数,格式为:类型 …参数
例如:
总的来说,可变参数可以当成是数组来用:
public void testSum() {
System.out.println(sum(1,2,3,4,5));
} public int sum(int ...nums) {
int sum = 0;
for(int i:nums) {
sum +=i;
}
return sum;
}
如果方法参数中不止有可变参数,还有别的类型的参数,那么可变参数应该放到方法列表中的最后才不会报错:
public void testSum() {
System.out.println(sumPlusX(100,1,2,3,4,5));
} public int sumPlusX(int x,int ...nums) {
int sum = 0;
for(int i:nums) {
sum +=i;
}
return sum+x; }
可以直接用数组来满足参数是可变参数的方法:
public void testSum() {
int[] nums = {1,2,3,4,5};
System.out.println(sum(nums));
} public int sum(int ...nums) {
int sum = 0;
for(int i:nums) {
sum +=i;
}
return sum; }
最后我们再来看一看比较典型的采用可变参数的方法,在数组工具类Arrays中的asList方法:
从方法参数列表可以看到这也是一个可变参数,接收的是对象,记住是对象!等下我们就可以看到为什么这样强调了。
我们先来一个简单的例子:
public void testAsList() {
List list = Arrays.asList("1","2","3");
System.out.println(list);
}
输出:
再来一个简单的例子:
public void testAsList() {
String[] str = {"1","2","3","4"};
List list = Arrays.asList(str);
System.out.println(list);
}
输出:
最后一个例子:
public void testAsList() {
int[] nums = {1,2,3,4,5};
List list = Arrays.asList(nums);
System.out.println(list);
}
输出:
前面说过,可以将可变参数当成数组来处理,也可以用数组来满足参数列表为可变参数,对于可变参数是类型来说,对象数组依然可以满足可变参数,但是基本类型数组,因为数组中的元素并不是类型对象,所以只能将整个数组作为一个对象,因此就出现上面第三种情况。
当然如果我们将上面的例子将基本类型改变为其对象包装类,那么就又可以了:
public void testAsList() {
Integer[] nums = {1,2,3,4,5};
List list = Arrays.asList(nums);
System.out.println(list);
}
输出:
最新文章
- github免输用户名/密码SSH登录的配置
- 【已解决】新搭建的VPN服务器客户端无法正常连接
- Mac下搭建android开发环境
- JS 页面加载触发事件 document.ready和window.onload的区别
- supersr--时间显示逻辑-->;NSDate+NSCalendar
- android之RadioGroup
- Rigidbody SweepTest测试
- Font Awesome字体图标
- Python基础教程【读书笔记】 - 2016/8/3
- 解决从linux本地文件系统上传文件到HDFS时的权限问题
- JS双击div编辑文本内容
- GlusterFS 安装 on centos7
- css实现垂直居中的方法整理
- BN层
- ftp sftp vsftp
- VS快捷键以及Reshaper快捷键
- websocket 缺点
- python新手第一天学习笔记-第一个ptyhon程序和python变量
- Refactoring之——代码的坏味道(四)过长参数列
- 【Java】String和Date、Timestamp之间的转换
热门文章
- new Intent(String action,Uri uri)构造器说明
- Android:ServiceDemo
- [转]如何从MySQL官方Yum仓库安装MySQL5.6
- 高性能的JavaScript--加载和执行[转]
- [转]TOMCAT原理以及处理HTTP请求的过程、ContextPath ServletPath
- 432B - Football Kit
- 基于visual Studio2013解决C语言竞赛题之0502最小数替换
- 基于visual Studio2013解决C语言竞赛题之0501挑选素数
- 多个线程怎样操作同一个epoll fd
- webform--常用的控件