Java反射分析
发布时间:2021-11-24 16:39:31 所属栏目:教程 来源:互联网
导读:Java.lang.reflect包 Constructor、Field、Method的父类是AccessibleObject; 一、获得Class对象 Class? c = Class.forName(classname); 抛出ClassNotFoundException 二、获得实现接口 Class? inters[] = c.getInterfaces(); for(int i=0;iinters.length;i++
Java.lang.reflect包 Constructor、Field、Method的父类是AccessibleObject; 一、获得Class对象 Class<?> c = Class.forName("classname"); 抛出ClassNotFoundException 二、获得实现接口 Class<?> inters[] = c.getInterfaces(); for(int i=0;i<inters.length;i++){ System.out.print(inters[i].getName()+" "); //getName()方法为取得接口名称; } 三、获得父类 Class<?> superClass = c.getSuperclass(); //获得父类 String name = superClass.getName(); //获得父类名称 四、取得构造方法 Constructor cons[] = c.getConstructors(); //获得公开的构造方法 Constructor dcons[] = c.getDeclaredConstructors(); //获得全部构造方法 String modifier = Modifier.toString(cons[i].getModifiers()); //获得访问权限 String name = cons[i].getName(); //获得构造方法名称 Class<?> params[] = cons[i].getParameterTypes(); //获得参数类型对象 五、获得Method Method ms[] = c.getMethods(); //返回公共的全部方法,包括继承方法 Method dms[] = c.getDeclaredMethods(); //返回本类全部方法,不包括继承的方法 Class<?> rt = ms[i].getReturnType(); Class<?>params[] = ms[i].getParameterTypes(); String name = ms[i].getName(); String modifier = Modifier.toString(ms[i].getModifiers()); Class<?>ex[] = ms[i].getExceptionTypes(); //获得异常 String name = ex[i].getName(); //获得异常名称 六、获得Field Field fs[] = c.getFields(); //获得公共属性,包括继承属性 Field dfs[] = c.getDeclaredFields(); // 获得本类全部属性 Class<?> type = fs[i].getType(); //获得属性的类型对象 String name = fs[i].getName(); //获得属性的名称 String modifier = Modifier.toString(fs[i].getModifiers()); 七、通过反射创建一个对象 Class<?> c = Class.forName("Person"); Person p = (Person)c.newInstance(); 八、Constructor创建对象 Class c = Class.forName("Person"); Constructor<?> cons[] = c.getConstructors(); Person p = (Person)cons[0].newInstance("xiazdong",15); ![]() (编辑:开发网_开封站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |