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

© 李前进 中级黑马   /  2014-3-30 15:35  /  1111 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public Object invoke(Object obj,Object... args)

public Object invoke(Object obj,Object[] args)

为什么一个是Object... args,一个是Object[] args呢?两个有什么不同点吗?


5 个回复

倒序浏览
1.5新特性  ...就是可变参数..实际上内部封装还是一个数组.
回复 使用道具 举报
jdk1.5之后,出现了可变参数的新特性, 也就是 ...  对于可变参数,要把可变参数的参数,放在参数列表的末尾。
内部使用的时候,实际上封装了一个数组。
取值的时候,采用数组取值的方式取值,进行数据的操作。
其实两者本质上是没有区别的。。
回复 使用道具 举报

public Object invoke(Object obj,Object... args)
//这个是一种可变参数的方式。例如你调用这个方法,你可以传任意多个参数,如:invoke(1,“s”)/invoke(1,"s","a")/invoke(1,2,3,4,6)等这几种调用方法都是可以的。其实实质上相当于是一个object数组
public Object invoke(Object obj,Object[] args)
//这句的意思就是把参数个数写死了,第一个参数是一个object类型的,第二个参数是一个object类型的数组。

//其实用起来第一个和第二个效果上是差不多的,只是第一种看起来简洁些。

回复 使用道具 举报
我觉得本质上没有什么区别就是写法不一 哦 对了这个Object...obj 这个必须放在最后面 否则会报错的     
以上是我的理解不知道啊能帮到你
回复 使用道具 举报
楼主你好,如果问题已解决,请将帖子改为提问结束,如果没有解决请楼主继续提问,谢谢合作
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马