今天碰到了 public static String getAutoRelateRelationship(final JSONObject modifyJson, String... inUsedConn) {...},其中有可变参数列表。其定义格式为:
访问修饰符  返回值类型  方法标识符(参数类型  参数标识符1,参数类型  参数标识符2,参数类型...参数标识符){}。

  可变参数:可变参数本质上就是一个数组,对于某个声明了可变参数的方法来说,我们既可以传递离散的值,也可以传递数组对象。一般我们都是将方法中的参数定义为数组,但是这样的话我们只能传递数组对象而不能传递离散的值。

  注意,如果方法里面接收多个参数的话,可变参数必须是方法声明中的最后一个参数,并且不可能具有两个或两个以上的可变参数。

  应用场景可以是,比如要定义一个求和功能的方法,但求和的数不确定,这时就可以采用可变参数的方法来完成这个功能。

public class SumOperation {

    public static void main(String[] args) {
System.out.println("1+2=" + getSum(1,2));//参数是离散值
System.out.println("1+2+3=" + getSum(1,2,3));
System.out.println("1+2+3+4=" + getSum(new Integer[]{1,2,3,4}));//参数是数组
}
public static int getSum(Integer... params){
int sum = 0;
for(int i:params)
sum += i;
return sum;
}
}

结果:

另外:

        Integer[] arrays = new Integer[]{1,2,3,4};
List<Integer> list = Arrays.asList(arrays);
//下面这行是错误的,此list不支持增加和删除,但是可以更改值
list.add(0, 1);

下面看看Arrays.asList(Integer... a)的实现源码

    @SafeVarargs
@SuppressWarnings("varargs")
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}

基本上可以确定,数组T[ ]和可变参数T... a可以实参形参相互调用。

jdk5可变参数列表的更多相关文章

  1. 可变参数列表与printf()函数的实现

    问题 当我们刚开始学习C语言的时候,就接触到printf()函数,可是当时"道行"不深或许不够细心留意,又或者我们理所当然地认为库函数规定这样就是这样,没有发现这个函数与普通的函数 ...

  2. Java 可变参数列表

    1.可变参数列表的简单实现 当调用方法时,方法的参数个数或类型未知时,称其为可变参数列表.在以前的Java代码中,可以使用Object数组来实现这样的功能.因为,所有的类都是直接或间接继承于Objec ...

  3. PHP函数可变参数列表的具体实现方法介绍

    PHP函数可变参数列表可以通过_get_args().func_num_args().func_get_arg()这三个函数来实现.我们下面就对此做了详细的介绍. AD:2014WOT全球软件技术峰会 ...

  4. 可变参数列表---以dbg()为例

    在UART驱动的drivers/serial/samsung.h中遇到如下定义: #ifdef CONFIG_SERIAL_SAMSUNG_DEBUG extern void printascii(c ...

  5. (四)《Java编程思想》——可变参数列表

    以object数组为参数的方法实现可变参数列表 package chapter5; /** * 以object数组为参数的方法实现可变参数列表 */ class A { } public class ...

  6. 可变参数列表-Java SE5新特性(转)

    Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理.注意:可变参数必须位于最后一项.当可变参数个数多于一个时,必将有一个不是最后一项,所以只支持 ...

  7. C语言函数可变参数列表

    C语言允许使用可变参数列表,我们常用的printf函数即为可变参数函数,C标准库提供了stdarg.h为我们提供了这方面支持:该头文件提供了一些类型和宏来支持可变参数列表,包括类型va_list,宏v ...

  8. <JAVA>可变参数列表

    这是java1.5版本的新特性,就是当你想定义一个方法,但是不知道以后要用的时候传几个参数进去,这时可以在方法的参数列表中这样写(参数类型... 数组名),然后在方法内部直接用操作数组的方式操作.比如 ...

  9. Chapter5_初始化与清理_数组初始化与可变参数列表

    一.数组初始化 数组是相同类型的,用一个标识符名称封装到一起的一个对象序列或基本类型数据序列.编译器是不允许指定数组的长度的,当使用语句int[] a时,拥有的只是一个符号名,即一个数组的引用,并不拥 ...

随机推荐

  1. C#调用Java的WebService出现500 服务器错误

    最近在用C#调用Java写的WebService时,发现老是返回500 服务器错误,到底什么原因一直找不出来, 后来google了以后,找到国外的http://stackoverflow.com站点已 ...

  2. C#使用wkhtmltopdf,把HTML生成PDF(包含分页)

    最近花了2天多的时间终于把HTML生成PDF弄好了.步骤如下: 1.首先是技术选型.看了好多都是收费的就不考虑了. 免费的有: jsPDF(前端生成,清晰度不高,生成比较慢) iText(严格要求ht ...

  3. Deutsch lernen (09)

    1. die Rückmeldung, -en 反馈,回馈:(销假)报到 die Rückmeldung zur Arbeit 2. dringend a. 紧急的,急切的 Ich brauche d ...

  4. JAVA面试题基础部分(二)

    10.使用 final 关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?使用 final 关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的.例如,对于如下 ...

  5. IIS日志分析:SC-Status语义

    在网站属性-网站-日志(属性) 中进行设定该站点IIS日志常规属性和扩展属性,扩展属性设置IIS日志包含字段显示. HTTP协议状态(sc-status)码的含义  IIS中 100 Continue ...

  6. OpenCv:椭圆上点的计算方程

    椭圆         椭圆(Ellipse)是平面内到定点F1.F2的距离之和等于常数(大于|F1F2|)的动点P的轨迹,F1.F2称为椭圆的两个焦点.其数学表达式为:                 ...

  7. C/C++关键字

    1. static关键字 作用 在函数体内静态变量具有记忆功能.在函数体内定义的静态变量离开时不会被清除,在下次函数调用的时候其值保持不变. 限制变量或函数的使用范围.static修饰的全局变量或者函 ...

  8. react基础篇五

    再看JSX 本质上来讲,JSX 只是为 React.createElement(component, props, ...children) 方法提供的语法糖.比如下面的代码: <MyButto ...

  9. js消息框

    <script> function del(obj, id) { layer.confirm('是否要删除信息!', { btn: ['确定', '取消'] }, function (in ...

  10. 玲珑杯#20 C 漆黑的太阳——莫队

    题目:https://www.ifrog.cc/acm/problem/1155 题解:https://www.ifrog.cc/acm/solution/28 1.如何不重复计算一个值 自己想的是对 ...