所有类的对象其实都是Class的实例
获取是类对象的方式:
package Reflect; class Demo{ //other codes... } class hello{ public static void main(String[] args) { Class<?> demo1=null; Class<?> demo2=null; Class<?> demo3=null; try{ //一般尽量采用这种形式 demo1=Class.forName("Reflect.Demo"); //Class<?> cls = Class.forName(obj.getClass().getName); }catch(Exception e){ e.printStackTrace(); } demo2=new Demo().getClass(); demo3=Demo.class; System.out.println("类名称 "+demo1.getName()); System.out.println("类名称 "+demo2.getName()); System.out.println("类名称 "+demo3.getName()); } }
通过获取类的对象来整出所有关于这个类的信息的一个东西
//取得全部的构造函数
Constructor<?>
cons[]=demo.getConstructors(); per1=(Person)cons[0].newInstance();
//取得父类
Class<?> temp=demo.getSuperclass();//
取得本类的全部属性
Field[] field = demo.getDeclaredFields(); for (int i = 0; i < field.length;
i++) { // 权限修饰符 int mo =
field[i].getModifiers(); String priv = Modifier.toString(mo); // 属性类型 Class<?> type = field[i].getType(); System.out.println(priv + "
" + type.getName() + "
" + field[i].getName() + ";"); } System.out.println("===============实现的接口或者父类的属性========================"); // 取得实现的接口或者父类的属性 Field[] filed1 = demo.getFields(); for (int j = 0; j <
filed1.length; j++) { // 权限修饰符 int mo =
filed1[j].getModifiers(); String priv = Modifier.toString(mo); // 属性类型 Class<?> type = filed1[j].getType(); System.out.println(priv + "
" + type.getName() + "
" + filed1[j].getName() + ";"); }原文:http://www.cnblogs.com/yujian-bcq/p/3549168.html