A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 旅人 中级黑马   /  2016-3-8 17:44  /  430 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


变长参数和数组,如何变通?

变长参数特性带来了一个强大的概念,可以帮助开发者简化代码。不过变长参数的背后是什么呢?Basically,就是一个数组。
public void calc(int... myInts) {}
calc(1, 2, 3);
编译器会将前面的代码翻译成类似这样:
int[] ints = {1, 2, 3};
calc(ints);
不过这里有两点需要注意:
当心空调用语句,这相当于传递了一个null作为参数。
calc();
等价于
int[] ints = null;
calc(ints);
当然,下面的代码会导致编译错误,因为两条语句是等价的:
public void m1(int[] myInts) { ... }
public void m1(int... myInts) { ... }


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马