java反射获取类和对象信息全解析-亚博电竞手机版
java学习
2020年03月27日 23:24
0
反射可以解决在编译时无法预知对象和类是属于那个类的,要根据程序运行时的信息才能知道该对象和类的信息的问题。
在两个人协作开发时,你只要知道对方的类名就可以进行初步的开发了。
获取类对象
- class.forname(string clazzname)静态方法
- 调用类的class属性,person.class返回的就是person的class对象(推荐使用)
- 调用某个对象的getclass()方法
具体使用还是要根据实际来选择,第一种方式是比较自由的,只要知道一个类名就可以了,其不会做该类是否存在的校验,第二种、第三种则会做校验
获取类的信息
获取类构造器
connstructor
:返回此class对象对应类的带指定形参的public构造器getconstructor(class...parametertypes) constructor[] getconstructors()
:返回此class对象对应类的所有public构造器constructor
:返回此class对象对应类的带指定参数的构造器,与构造器的访问权限无关[] getdeclaredconstructor(class...parametertypes) 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对象对应类的全部成员变量,与成员变量的访问权限无关