乐趣区

关于java:反射的应用场所

编译时类型和运行时类型

程序再运行时还是可能受到内部传入的对象,该办法的编译时类型为 Object, 然而程序有须要调用该对象的运行时类型的办法。为了解决这些问题,程序须要在运行时发现对象和类的实在信息。然而,如果编译时根本无法预知对象和类属于哪些类,程序只能依附运行时信息来发现该对象和类的实在信息,此时就必须应用到反射了

Java 反射 API

1.Class 类:反射的外围类,能够获取类的属性,办法等信息
2.Field 类:Java.lang.reflec 包中的类,示意类的成员变量,能够用来获取和设置类之中的属性值。
3.Merhod 类:Java.lang.reflec 包中的类,示意类的办法,它能够用来获取类中的办法信息或者执行办法
4.Constructor 类:Java.lang.reflec 包中的类,示意类的构造方法

获取 Class 对象的 3 种办法

调用某个对象的 getClass()办法
Person p=new Person();
Class clazz=p.getClass();
调用某个类的 class 属性来获取该类对应的 Class 对象
Class clazz=Person.class;
调用某个类中的 forName()静态方法 (最平安 / 性能最好)
Class clazz=Class.forName(“ 类的原门路 ”);(最罕用)
当咱们获取了想要操作的类的 class 对象后,能够通过 Class 类中的办法获取并查看该类中的办法和属性

退出移动版