黑马程序员技术交流社区

标题: 关于张孝祥老师反射的调用main方法问题 [打印本页]

作者: mmakun    时间: 2015-5-27 17:25
标题: 关于张孝祥老师反射的调用main方法问题
这个视频中有一个知识点,说是main方法接收的参数是一个String数组 ,而直接反射的时候放一个数组是不能通过 的,前面加上(Object)就可以 了,但加上这个之后强转为Object了,怎么为main方法所识别 呢?还是不明白。
作者: 马也keyboard    时间: 2015-5-29 17:07
视频中有两种方法来获取传入的String[]对象
之所以要进行强制转换是因为invoke()方法兼容了JDK1.5和JDK1.4两个版本,而这两个版本的参数有所不同,JDK1.5版本中传入的是多个Object对象,而JDK1.4版本传入的是一个数组对象,数组内传递所有参数

因此,在向invoke()传入参数时,为了避免编译器把String[]对象当做jdk1.4版本的参数对待,所以使用(Object)进行强制转换。
同样也可以用new Object[]{new String[]{}}来帮助编译器区分

作者: mmakun    时间: 2015-5-29 21:16
马也keyboard 发表于 2015-5-29 17:07
视频中有两种方法来获取传入的String[]对象
之所以要进行强制转换是因为invoke()方法兼容了JDK1.5和JDK1.4 ...

明白了,多谢了啊!
作者: hejin67410    时间: 2015-9-22 22:05
谢谢分享
作者: hejin67410    时间: 2015-9-22 22:08
谢谢分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2