object…object
public int update(String sql, Object... params) throws SQLException { Connection conn = this.prepareConnection(); return this.update(conn, true, sql, params); }
上面程序中传递的形参中有这样的一个写法:Object… params
Object …params这种参数定义是在不确定方法参数的情况下的一种多态表现形式。
即这个方法可以传递多个参数,这个参数的个数是不确定的。
这是JDK1.5新增语法,新特性,动态参数或者是可变参数的意思。
(1)使用…将参数声明成可变长参数。
(2)可变长参数必须是最后一个参数。
(3)可变参数同时可以跟固定的参数混合使用,但是一个方法的参数列表中最多只有一个不定长度的参数。
上面第2、3条必须满足,不然不能通过编译。
Object是所有类的基类,所以使用Object …objects这样的参数形式,允许一切继承自Object的对象作为参数。
Object[] obj
这是一个Object数组构成的参数形式。说明这个方法的参数是一个Object数组,至于这个数组中存储的元素,可以是继承自Object的所有类的对象。
当形参为Object[]数组时,调用该方法必须为一个数组
object…object和object[]…object的区别
日常使用不定参数时候基本是Object…可以等同于 Object[] obj一维数组理解的。
当形参为Object…objects时,调用就相当灵活了,可以不带参数,可以带一个参数或者多个参数,也可以带数组作为参数
二、怎样使用
private static int sumUp(int... values) { int sum = 0; for (int i = 0; i < values.length; i++) { sum += values[i]; } return sum; }
public static void main(String[] args) { String ss=test("网页制作","设计欣赏","建站教程","网站优化"); System.out.println(ss); } public static String test(String... params ) { StringBuilder s = new StringBuilder(); for (String string : params) { s.append(string); } return s.toString(); }
125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/4267.html