黑马程序员技术交流社区

标题: 反射总结. [打印本页]

作者: 丁桂松    时间: 2012-11-3 07:52
标题: 反射总结.
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. 反射用在哪里
        到底框架是什么?  框架就是将开发中大量重复的代码集中起来写个通用的程序
        框架就是用反射来实现的
        框架需要现在的类调用将来写的类

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




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