java 国际化 变长参数_Java变长变量(类似ES6的剩余参数)应用例子

今天看代码的时候,看到一处如下:

20180915165536308453.png

第三个参数提示:...properties的写法有点类似之前看过的ES6语法的剩余参数,不知道java也有这玩意儿。搜了下,是jdk1.5的新特性:变长变量。有点孤陋!

百度知道解释:

其实这种定义就类似一个数据的定义,可以不用给它的长度加以限制,可以传入任意多个参数。

比用数据更灵活一些,不会出现一些数组越界等的异常。

如:

getType(String ...values);

调用时,可以getType("a","b","c")等,参数个数没有限制,类型是前面规定的String类型。

继续看代码的调用,首先是跟踪Sort()对像的构造器。Sort()是org.springframework.data.domain包下的一个类,

20180915165536358259.png

实现了两个接口,Sort.Order应该就是Sort类里的一个静态内部类了。不扯了,直接看关键位置的构造器:

20180915165536502796.png

发现剩余参数变量(变长变量)传进来,主要用于构造ArrayList动态数组对象。搜了下数组工具类asList()的用法,将一个数组转化为一个List对象,

这个方法会返回一个ArrayList类型的对象, 这个ArrayList类并非java.util.ArrayList类,而是Arrays类的静态内部类!用这个对象对列表进行添加删除更新操作,

就会报UnsupportedOperationException异常。

20180915165536887576.png

总结就是,变成变量应该主要用来转为数组对象吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值