java反射获取类和对象信息全解析-亚博电竞手机版

反射可以解决在编译时无法预知对象和类是属于那个类的,要根据程序运行时的信息才能知道该对象和类的信息的问题。

在两个人协作开发时,你只要知道对方的类名就可以进行初步的开发了。

获取类对象

  • class.forname(string clazzname)静态方法
  • 调用类的class属性,person.class返回的就是person的class对象(推荐使用)
  • 调用某个对象的getclass()方法

具体使用还是要根据实际来选择,第一种方式是比较自由的,只要知道一个类名就可以了,其不会做该类是否存在的校验,第二种、第三种则会做校验

获取类的信息

获取类构造器

  • connstructor getconstructor(class...parametertypes):返回此class对象对应类的带指定形参的public构造器
  • constructor[] getconstructors():返回此class对象对应类的所有public构造器
  • constructor[] getdeclaredconstructor(class...parametertypes):返回此class对象对应类的带指定参数的构造器,与构造器的访问权限无关
  • constructor[] getdeclaredconstructors():返回此class对象对应类的所有构造器,与构造器的访问权限无关

获取类成员方法

  • method getmethod(string name,class...parametertypes):返回此class对象对应类的带指定形参的public方法
  • method[] getmethods():返回此class对象所表示的类的所有public方法
  • method getdeclaredmethod(string name,class...parametertypes):返回此class对象对应类的带指定形参的方法,与方法访问权限无关
  • method[] getdeclaredmethods():返回此class对象对应类的全部方法,与方法的访问权限无关

获取类成员变量

  • field getfield(string name):返回此class对象对应类的指定名称的public成员变量
  • field[] getfields():返回此class对象对应类的所有public成员变量
  • field getdeclaredfield(string name):返回此class对象对应类的指定名称的成员变量,与成员变量访问权限无关
  • field[] getdeclaredfields():返回此class对象对应类的全部成员变量,与成员变量的访问权限无关

获取类注解

最新文章

网站地图