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
微信扫一扫
支付宝扫一扫