反射

来源:互联网 发布:生酮饮食都吃什么 知乎 编辑:程序博客网 时间:2024/06/05 06:04

1、反射?(反编译)

对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象都能调用它的任意方法和属性。

 

2、如何得到类对象(6种方法)

<1>类名.class

<2>对象.getClass()

<3>Class.forname(“权限定名”);

<4>类加载器loadClass(“权限定名”);

<5>子类.class.getSuperClass();

<6>包装类.class

 

3、根据类得到类名(权限定名)

c.getName();  权限定名

c.getSimpleName();  类名

c.getPackage(); 包名

 

4、根据类得到类的属性

 c.getField(“field属性名”);

属性名:f.getName();

属性修饰符:f.getModifiers();

((通饰符)intModifier.toString(f.getModifiers())

属性的数据类型:f.getType().getName();

给属性设置:f.set(person,”xxx”);

得到属性的值:f.get(person);

得到私有的属性:f.getDeclaredField(“属性名”);

得到所有的声明的属性:c.getDeclaredFields();

 

5、根据类得到类的方法

c.getMethod();

c.getDeclaredMethods();

得到每个方法的返回值类型:

method.getRuturnType().getName();

 

6、根据类得到类的构造方法

clazz.getDeclaredConstruConstructors();

得到参数类型:c.getParameterTypes();

 

7、根类据得到类的实现接口列表

继承:c.getSuperclass().getSimpleName();

实现的接口:c.getInterfaces();

 

 

原创粉丝点击