1,java程序中一般的对象的类型都是在编译期就确定下来的,而Java反射机制可以动态地创建对象并调用其属性,这样的对象的类型在编译期是未知的。
2,主要功能:
1)运行时判断任意对象属于哪个类
2)任意构造类的对象
3)判断任意对象的属性和方法,任意调用对象的方法
3,实例:idea的提示功能,spring框架,写在xml文档的bean,在运行时通过反射实例化
4,基本操作:https://www.sczyh30.com/posts/Java/java-reflection-1/
5,class方法
Class类常用方法 ▶ getName() :获得类的完整名字; ▶ getSuperclass() :获得类的父类; ▶ newInstance() :通过类的不带参数的构造方法创建这个类的一个对象; ▶ getFields() :获得当前类和父类中的public类型的所有属性; ▶ getDeclaredFields() :获得当前类(不包含父类)声明的所有属性,包括private和public; 注:对于某个属性field,设置field.setAccessible(true),即可访问private的属性值,如field.get(obj) ▶ getMethods() :获得前类和父类中public类型的所有方法; ▶ getDeclaredMethods() :获得当前类(不包含父类)声明的所有方法,包括private和public; ▶ getMethod(String name, Class[] parameterTypes) :获得类的指定方法,name参数指定方法的名字,parameterTypes 参数指定方法的参数类型; ▶ getConstructors() :获得当前类的public类型的构造方法; ▶ getDeclaredConstructors() :获得当前类的public和private类型的构造方法; ▶ getConstructor(Class[] parameterTypes) :获得类的特定构造方法,parameterTypes 参数指定构造方法的参数类型; ▶ getInterfaces() :获得实现的接口; ▶ getSuperclass() :获得继承的父类;