• JAVA中的反射机制


               反射,当时经常听他们说,自己也看过一些资料,也可能在设计模式中使用过,但是感觉对它没有一个较深入的了解,这次重新学习了一下,感觉还行吧!


               一,先看一下反射的概念:

                  主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。

                 反射是java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链接。但是反射使用不当会成本很高!

                 看概念很晕的,继续往下看。

     

          二,反射机制的作用:

                  1,反编译:.class-->.java

                  2,通过反射机制访问java对象的属性,方法,构造方法等;

                 这样好像更容易理解一些,下边我们具体看怎么实现这些功能。


          三,在这里先看一下sun为我们提供了那些反射机制中的类:

    java.lang.Class;                

    java.lang.reflect.Constructor; java.lang.reflect.Field;        

    java.lang.reflect.Method;

    java.lang.reflect.Modifier;


                很多反射中的方法,属性等操作我们可以从这四个类中查询。还是哪句话要学着不断的查询API,那才是我们最好的老师。


             四,具体功能实现:

                    1,反射机制获取类有三种方法,我们来获取Employee类型

    1. //第一种方式:  
    2. Classc1 = Class.forName("Employee");  
    3. //第二种方式:  
    4. //java中每个类型都有class 属性.  
    5. Classc2 = Employee.class;  
    6.    
    7. //第三种方式:  
    8. //java语言中任何一个java对象都有getClass 方法  
    9. Employeee = new Employee();  
    10. Classc3 = e.getClass(); //c3是运行时类 (e的运行时类是Employee)  

     

        2,创建对象:获取类以后我们来创建它的对象,利用newInstance

    1. Class c =Class.forName("Employee");  
    2.   
    3. //创建此Class 对象所表示的类的一个新实例  
    4. Objecto = c.newInstance(); //调用了Employee的无参数构造方法.  
  • 相关阅读:
    Adobe flash player更新失败
    配置NAT回流导致外网解析到了内网IP
    Android下海康实时视频解码
    红米无线不稳定问题
    TP-Link路由器刷dd-wrt的linux,无线信号增强不少
    发布FTP服务,防火墙配置
    SQL SERVER 实现分组合并实现列数据拼接
    MyGeneration 数据库驱动为空
    WIND2003 安装Zend studio 报错
    TOAD FOR MYSQL 进行数据插入时乱码的解决办法---MariaDB 5.5
  • 原文地址:https://www.cnblogs.com/jpfss/p/8126586.html
Copyright © 2020-2023  润新知