AJPFX的反射学习笔记

时间:2021-06-03 08:48:04

反射是描述 数据结构的结构
        属性、方法(数据)元数据
        类(数据结构)描述数据的结构-->类也是特殊的对象---->元数据
        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();

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