JAVA反射总结

概念

在运行状态中,对于任意一个类,都能获取类的所有方法和属性;对应任意一个对象,都能调用它的任意一个方法和属性。

Reflection API介绍

  • Class类: 代表一个类
  • Field类:代表一个类的成员变量
  • Method类:代表类的方法
  • Constructor类:代表类的构造方法
  • Array类:提供了动态创建数组,及访问数组的静态方法

Reflection.Class

Class概念

在java中,每一个class都有一个Class对象。我们每编写一个class,在编译完成后,在生成的.class文件中,都会产生一个Class对象,用于表示这个类的类型信息

Class的获取方式

  • new一个class的实例,然后调用getClass()方法
  • Class.forName("类名称")
  • 直接调用.class
    代码:
public class FancyToy extends Toy implements HasBatteries,Waterproof,ShootsThings {
    FancyToy() { super(1); }


    public static void main(String... args){
        FancyToy fancyToy = new FancyToy();
        Class clazz01 = fancyToy.getClass();   //方法1,调用getClass()
        Class clazz03 = FancyToy.class;  //方法3,运用.class的方式获取
        try{
            Class clazz02 = Class.forName("com.vilian.thinkingInJava.chapter05.classForname.FancyToy");  #方法2,调用Class.forName()
            System.out.println(clazz02.toString());
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }

        System.out.println(clazz01.toString());
        System.out.println(clazz03.toString());

    }
}

Class的一些常用API

  • getSuperclass() 获取父类

你可能感兴趣的:(JAVA反射总结)