// 加载这个类的class文件
Class c = Class.forName(“com.sxtt.User”);
// 创建一个实例化的对象
User u = (User) c.newInstance();
// 类的全路径
System.out.println(c.getName());
// 类的名称
System.out.println(c.getSimpleName());
// 返回类的权限
System.out.println(Modifier.toString(c.getModifiers()));
// 判断是否是接口
System.out.println(c.isInterface());
// 拿到父类的全称
System.out.println(c.getSuperclass().getName());
// 父类的名字
System.out.println(c.getSuperclass().getSimpleName());
// 获取类中的public的属性
Field f = c.getField(“name”);
System.out.println(f.getName());
// 获取所有权限类型的属性
Field age = c.getDeclaredField(“age”);
System.out.println(age.getName());// 获取所有public的属性 Field[] fs = c.getFields(); // 获取所有类型的所有属性 Field[] dfs = c.getDeclaredFields(); System.out.println(dfs.length); System.out .println("======================================================"); // 获取所有公共方法包含父类和接口 Method[] ms = c.getMethods(); for (Method m : ms) { System.out.println(m.getName()); } System.out .println("======================================================"); // 通过方法名获取公共方法 Method m = c.getMethod("say"); System.out.println(m.getName()); System.out .println("======================================================"); // 获取所有本类的方法 Method[] bms = c.getDeclaredMethods(); for (Method bm : bms) { System.out.println(bm.getName()); } System.out .println("======================================================"); // 通过名字获取本类的方法 Method bm = c.getDeclaredMethod("run"); System.out.println(bm.getName()); // 调用本类的带参数的方法 Method cm = c.getDeclaredMethod("run", String.class); cm.invoke(u, "张三");}