反射
来源:互联网 发布:生酮饮食都吃什么 知乎 编辑:程序博客网 时间: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();
((通饰符)int转Modifier.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();