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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

这个视频中有一个知识点,说是main方法接收的参数是一个String数组 ,而直接反射的时候放一个数组是不能通过 的,前面加上(Object)就可以 了,但加上这个之后强转为Object了,怎么为main方法所识别 呢?还是不明白。

4 个回复

倒序浏览
视频中有两种方法来获取传入的String[]对象
之所以要进行强制转换是因为invoke()方法兼容了JDK1.5和JDK1.4两个版本,而这两个版本的参数有所不同,JDK1.5版本中传入的是多个Object对象,而JDK1.4版本传入的是一个数组对象,数组内传递所有参数

因此,在向invoke()传入参数时,为了避免编译器把String[]对象当做jdk1.4版本的参数对待,所以使用(Object)进行强制转换。
同样也可以用new Object[]{new String[]{}}来帮助编译器区分
回复 使用道具 举报
马也keyboard 发表于 2015-5-29 17:07
视频中有两种方法来获取传入的String[]对象
之所以要进行强制转换是因为invoke()方法兼容了JDK1.5和JDK1.4 ...

明白了,多谢了啊!
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马