黑马程序员技术交流社区
标题:
反射中的一个问题????
[打印本页]
作者:
IT人
时间:
2013-11-27 15:17
标题:
反射中的一个问题????
Method methodCharAt = String.class.getMethod("charAt",int.class);
中为什么参数是int.class,而不是int。原理是是什么????
作者:
Jim-剣◆﹏
时间:
2013-11-27 16:45
方法规定了取得的方法的参数的类型是Class类型,所以也就...
作者:
衣带赞
时间:
2013-11-27 19:48
你要这样想,String.class是什么?是一堆字节码的对象,它并不是String类,仅仅是从硬盘上的二进制数据变成了字节码而已,它还需要类的加载器加载进内存中才能变为String类,这个在后面会讲到的。
在String内中,这个方法需要接收一个int的参数,但是这个仅仅是一个字节码文件的对象,它也不认识int是什么东西,只认识int的字节码,所以这里需要接收一个int的字节码对象。
如果还不理解,就想想String类中的这个方法被编译时产生了什么东西?产生的是一堆看不懂的字节码,那么这个参数int是不是也被编译成了字节码呢?我们看不懂这个字节码,字节码也看不懂我们知道的int,就是这个道理。
作者:
IT人
时间:
2013-11-27 21:53
谢谢!似乎明白一点了!
作者:
简★零度
时间:
2013-11-30 20:31
IT人 发表于 2013-11-27 21:53
谢谢!似乎明白一点了!
问题解决了就把类型改成提问结束1
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2