java反射

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java反射相关的知识,希望对你有一定的参考价值。

反射机制

  • 指的是可以于运行时加载,探知和使用编译期间完全未知的类.
    • 反射(Reflection)是java被视为动态语言的一个关键特性;
    • 反射机制指的是程序在运行时能够获取任何类的内部所有信息;
    • 加载完类之后, 在堆内存中会产生一个Class类型的对象(一个类只有一个Class对象), 这个对象包含了完整的类的结构信息,而且这个Class对象就像一面镜子,透过这个镜子看到类的结构,所以被称之为:反射。

Class对象的获取

  • 对象的getClass()方法;
  • 类的.class(最安全/性能最好)属性;
  • 运用Class.forName(String className)动态加载类,className需要是类的全限定名(最常用).
  •                 //获取Class对象第一种方式
    		Class class1 = Class.forName("com.oaec.user.User");
    		//获取Class对象第二种方式
    		Class class2 = User.class;
    		//获取Class对象第三种方式
    		Class class3 = (new User()).getClass();

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

            Class c =Class.forName("Employee");
 
            //创建此Class 对象所表示的类的一个新实例
            Objecto = c.newInstance(); //调用了Employee的无参数构造方法.

Class对象的机制与实现

 1、Class对象概述

                  1)Class其实就是类的类型

                  2)字符串类型就是String,整形类型就是Integer,String和Integer类型就是Class

2、Class对象的常用方法介绍

技术分享

 

Field对象的机制与实现

         1、Field对象概述

             1)Java.lang.reflect.Field类,是用于表示类中、接口中属性对象的类。

             2)可以操作类中私有,以及公有等全部属性和属性的信息。       

          2、Field对象的常用方法介绍

技术分享

 

以上是关于java反射的主要内容,如果未能解决你的问题,请参考以下文章

反射机制入门

反射机制入门

反射机制入门

使用反射在外部JAR / CLASS上调用包含Hibernate事务的方法(Java EE)

为啥我的 Ray March 片段着色器反射纹理查找会减慢我的帧速率?

OpenGL片段着色器不照亮场景