Java 反射

75 阅读1分钟

内容

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

总结:就是反射可以在运行时根据指定的类名获得类的信息。

Class对象只有一个,由系统创建。一个Class对象对应一个.Class文件

用例

public class ReflectionT {
    public static void main(String[] args) throws ClassNotFoundException {
        Teacher t = new Teacher();
        Class c = Class.forName("com.javaSE.annotation_reflection.Teacher");//获取Class
        System.out.println(c);
        Class c1 = t.getClass();//获取Class
        Class c2 = Teacher.class;//获取Class
        Class c3 = Double.TYPE;//获取Double的类型,即double
        System.out.println(c1.hashCode());
        System.out.println(c2.hashCode());
        System.out.println(c3.hashCode());//获取哈希码
        System.out.println(c.getSuperclass());//获取Teacher的父类
        System.out.println(c2.getSuperclass().getSuperclass());//获取Teacher父类的父类
        System.out.println(c3.getSuperclass());//获取double类型的父类
    }
}
class Person{
    String s;
    int i;
    void f(){

    }

}
class Teacher extends Person{
    void f(int a){

    }
}