黑马程序员技术交流社区

标题: 反射学习笔记 [打印本页]

作者: 我爱睡觉    时间: 2016-1-10 19:10
标题: 反射学习笔记
反射是描述 数据结构的结构
        属性、方法(数据)元数据
        类(数据结构)描述数据的结构-->类也是特殊的对象---->元数据
        CLASS类 描述数据结构的结构
        在JAVA里面用Class  类 描述类的类        ---->
                    Method 类 描述类中的方法    ---->
        反射得到描述数据额结构的数据的一种行为
        
        Class类中有{
            getPackage();//得到包
            getName();//得到类名
            getModerfy();//得到修饰符
            Class getSuperclass();//得到父类 只有一个父类   返回一个Class <?>类型
            Class gerInterface();//得到接口
            Class[] getClasses();//得到多个子类   要用数组装
            Filed[] getFiled();//获得一个类里面 所有的字段
            Filed getFiled(String filename);//获得指定名称的字段
            getConstructors();//获得构造器
            getConstructor(Class...parameterType);//基本数据类型可以转变成一个CLASS
        }
        JAVA字段?
        JAVA构造器?
        
        表示Class类的对象
        使用一个叫Class 的属性
        Class<String> c=String.class  //表示JVM里面表示String的字节码
        Class<String> c2=String.class   
        System.out.println("c2");
        System.out.println(c==c2);  //得到true 用的是内存中的的同一份字节码
        
        
        第二种
        由于Class类里面没有构造函数 所以就有至少一个或者两个的静态函数 比如:forName()
        forName(className,true,currentLoader)
            其中className为完全限定名----->带有包名的name,比如java.lang.string;
            Class<String> clazz=(Class<String>) Class.forName("java.lang.string")
        
        
        Objiect getClasses()----->返回一个运行时的类型----->不是定义的类型
            List<Stirng> lists=new ArrayList<String>;
            lists s=new lists();
        


反射会以失去性能作为代价
    框架用的多 性能失去多  因为框架就是用反射做的

作者: yuhao1993    时间: 2016-1-11 09:11
赞一个,加油
作者: yuhao1993    时间: 2016-1-11 09:36
赞一个,加油
作者: qinrongchang    时间: 2016-1-11 09:54
谢谢分享
作者: hnsfxyzl    时间: 2016-1-11 16:17
加油                     
作者: 一大把手    时间: 2016-1-11 17:10
赞一个赞一个
作者: rushing    时间: 2016-1-11 20:41
赞一个,,,学的挺快的嘛
作者: 信徒的前行    时间: 2016-1-11 21:39
有用,反射我只记的reflect




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