- class 用来描述类本身
- Package 用来描述类所属的包
- Filed 用来描述类中的属性
- Method 用来描述类中的方法
- Construvtor 用来描述构造方法
-
Class
获取类的方法
Class clazz = Class.forName("包名.类名");
Class clazz = 类名.class
Class clazz = 对象.getClass()
- Class中常用的方法
int i = getModifiers()
获取类的修饰符(权限 特征)String name = getName()
获取全名String name = getSimpleName()
获取简单名字Package p = clazz.getPackage()
获取类所在的包Class pClazz = clazz.getSuperclass()
获取父类Class[] interfaces = clazz.getInterfaces()
获取类实现的接口Object obj = clazz.newInstance()
创建对象
Filed
Filed filedName = clazz.getFiled("属性名")
获取类的属性 需要知道属性名 属性必须是公有的FIled[] fileds = clazz.getFIleds()
获取类的全部属性 包含继承过来的公有属性Filed f = clazz.getDeclaredFiled()
获取类的私有属性Filed[] f = clazz.getDeclaredFiledS()
获取类的全部私有属性- 如果需要修改私有元素需要
**f.setAccessible(true)**
设置为true就可以修改
- 如果需要修改私有元素需要
int modifiers = filedName.getModifiters()
获取属性的修饰符Class fClass = filedName.getType()
获取属性的类型String name = filedName.getName()
获取属性的名字filedName.set("要赋值的那个对象",值)
给属性赋值,需要传递给那个对象的属性辅助filedName.get("对象")
取值,要取那个对象的值
Method
Method m = clazz.getMethod("方法名",参数的类型类)
获取方法(自己类+父类)Method m = clazz.getMethods("方法名",参数的类型类)
获取所有的方法(自己类+父类)Method f = m.getDeclaredMethod()
获取类的私有方法Method[] f = m.getDeclaredMethods()
获取类的全部私有方法- 如果需要修改私有元素需要
**m.setAccessible(true)**
设置为true就可以执行
- 如果需要修改私有元素需要
int modifiers = m.getModifiters()
获取方法的修饰符Class mrt = m.getReturnType()
获取返回值数据类型String mn = m.getName()
获取方法的名字Class[] mpts = m.getParameterTypes()
获取方法参数列表的类型Class[] mets = m.getExceptionTypes()
获取方法抛出异常的类型Object obj = m.invoke(对象,[参数])
执行方法构造方法Constructor
public class TestConstructor{
public static void main(String[] args){
try{
Class clazz = Person.class;
Constructor con == clazz.getConstructor(); // 获取构造方法 可有参数类型类
Constructor[] cons == clazz.getConstructors();// 获取一组构造方法可有参数类型类
Person p = (Person)con.newInstance(); // 执行构造方法
int modifiers = m.getModifiters(); //获取方法的修饰符
String mn = m.getName(); //获取方法的名字
Class[] mpts = m.getParameterTypes(); //获取方法参数列表的类型
Class[] mets = m.getExceptionTypes(); //获取方法抛出异常的类型
}catch(Exception e){
}
}
}