JAVA反射机制详解&Demo

什么是反射?俗话说的好,反射反射,程序员的快乐!不管是java本身,还是以java为开发底层的各种开发语言如android,还有我最亲爱的libgdx等等,都在不少的地方用到了java的反射机制。可以说,如果没有反射机制,java就插翅难飞。

JAVA反射机制是在运行状态中,对于任意一个类,都能够得到这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制.

反射就是让你可以通过名称来得到对象(类,属性,方法)的技术。例如Class.forName(“ClassName”)

  1. 知道了类名就可以生成一个类的实例;
  2. 知道了方法名,就可以调用这个方法;
  3. 知道了属性名就可以访问这个属性的值。
    利用类的getClass()来进行类的访问,下面是一个简单的例子。

    public class Demo {
    public static void main(String[] args) {

    Long num = 1l;
    Class myclass = num.getClass();
    System.out.println("输出类"+myclass.getSimpleName()+"的继承信息:");
    superClass(myclass);//采用递归输出
    

    }

    /**递归输出类的继承信息

    • @param c 类
      */
      public static void superClass(Class c){
      if(!c.getSimpleName().equalsIgnoreCase(“Object”)){
      //如果不是Object类,就继续遍历上一个
      superClass(c.getSuperclass());
      
      }
      System.out.println(c.getSimpleName());
      }
      }

      未完待续。