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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 攻城狮 黑马帝   /  2012-4-6 23:22  /  1565 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String str2="asd";
Method methodCharat=String.class.getMethod("charAt", int.class);
methodCharat.invoke(str2, 1);
反射调用这种方法与直接用str2.charAt(1)调用有什么区别?反射调用的目的是什么?

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

4 个回复

倒序浏览
JAVA反射机制主要提供了以下功能:
      1.在运行时判断任意一个对象所属的类
      2.在运行时构造任意一个类的对象
      3.在运行时判断任意一个类所具有的成员变量和方法(通过反射甚至可以调用private方法)
      4.在运行时调用任意一个对象的方法(*****注意:前提都是在运行时,而不是在编译时)

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

回复 使用道具 举报
从运行的结果来看,没什么区别。都是调用方法处理数据。但是,由于反射的应用灵活,常常用于开发框架(基于配置文件)。而一般的应用程序一般很少用反射。因为一般的应用的调用都是比较确定的,不用经常变换.class。所以在程序中可以直接调用需要的类。

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

回复 使用道具 举报
一个类有多个组成部分,例如:成员变量 方法  和 构造方法等,反射就是加载类并解剖出类的各个组成部分. 反射和 你直接调用的结果是一样的,但是反射技术用到框架里,还有配置文件里,配置文件里你不知道它有什么方法  属性等,这时候你就需要用到反射的技术了  ......

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

回复 使用道具 举报
难得一见的帖
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马