反射

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() :获得继承的父类;

 

posted on 2018-08-06 10:55  Kooing  阅读(80)  评论(0编辑  收藏  举报

导航