• Java反射的理解


    一、什么是反射

      反射是Java提供的动态获取对象和调用对象方法的功能。我们知道在Java中,获取对象的最常用的办法是通过关键字“new”,但这要我们事先将需要获取的对象写死在代码里,在代码运行期间无法改变。而Java的反射机制可以让我们动态获取对象,在代码运行期间才决定获取哪个对象。

    二、反射的作用

      Java引入反射机制,是为了提高程序的灵活性,减少代码之间的耦合度。比如我们要实例化一个Person类,如果不使用反射,我们只能通过关键字“new”进行实例化:

    1 Person person = new Person();

      被实例化的类写死在了代码中,运行期间不可更改。但如果我们使用反射,则代码如下:

     1 public class Test1 {
     2     public static void main(String[] args) {
     3 
     4         Object object;
     5         String className = "person.Person";               //Person类的全类名
     6 
     7         try {
     8             object = Class.forName(className).newInstance();    //获取Person类的运行时类并实例化
     9         } catch (Exception e) {
    10             e.printStackTrace();
    11         }
    12     }
    13 }

      反射支持我们使用全类名来获取对象,并且可以通过变量来传值。这样,我们就可以在代码的运行期间动态的决定实例化哪个类。不仅如此,我们还可以将类描述定义到配置文件中,如果想要实例化其他类,修改配置文件就可以了,而不需要修改代码再重新编译。这样就降低了代码之间的耦合度。

      Java的反射机制还提供了很多方法可以获取运行时类、进行类实例化、获取类的属性、获取类的方法、获取类的构造函数等。

      反射机制一般在框架中使用的较多,因为框架需要适应多种情况,对灵活性要求教高。理解好反射,是理解框架技术的基础。

  • 相关阅读:
    Html.RenderPartial和Html.Partial区别
    SQL Server事务处理
    为什么要使用消息队列(一)
    消息队列的优缺点(三)
    消息队列消息顺序性
    分布式事务之消息队列解决方案
    Solr与tomcat整合,并添加中文分词器
    Solr设置高亮
    Solr执行查询操作
    Lucene使用Filter搜索过滤
  • 原文地址:https://www.cnblogs.com/ysyasd/p/10923876.html
Copyright © 2020-2023  润新知