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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丁桂松 中级黑马   /  2012-11-3 07:52  /  1676 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1. 一段java代码在程序运行期间会经历三个阶段: source-->class-->runtime

2. Class 对象
        在java中用一个Class对象来表示一个java类的class阶段
        Class对象封装了一个java类中定义的成员变量、成员方法、构造方法、类名、包名等

3. 反射
        反射就是获得一个java类的各个组成部分

4. 反射的用法
        1)需要获得java类的各个组成部分,首先需要获得代表java类的 Class 对象
        获得Class对象的三种方式:
        Class.forName(classname)        用于做类加载
        obj.getClass()                                用于获得对象的类型
        类名.class                                            用于获得指定的类型,传参用

        2) 反射类的成员方法
        Class clazz = Person.class;
        Method method = clazz.getMethod(methodName, new Class[]{paramClazz1, paramClazz2});
        method.invoke();
       
        3) 反射类的构造函数
        Constructor con = clazz.getConstructor(new Class[]{paramClazz1, paramClazz2,...})
        con.newInstance(params...)

        4) 反射类的属性
        Field field = clazz.getField(fieldName);
        field.setAccessible(true);
        field.setObject(value);

5. 反射用在哪里
        到底框架是什么?  框架就是将开发中大量重复的代码集中起来写个通用的程序
        框架就是用反射来实现的
        框架需要现在的类调用将来写的类

        框架是将来的程序员调用的,框架不能实现完整的功能,框架只是一些一些通用的代码
        框架要运行一定会依赖将来写的类
        现在写的类要调用将来写的类,我们先针对接口进行调用,将来的类需要实现接口,那么方法就固定了
        但是将来写的类的类名我们无法获知,这时就需要调用者通过配置文件告诉框架具体的类名

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马