设为首页 加入收藏

TOP

Java反射研究
2014-11-24 14:57:52 来源: 作者: 【 】 浏览:35
Tags:Java 反射 研究

java.lang.reflect包


Constructor、Field、Method的父类是AccessibleObject;




Class< > c = Class.forName("classname"); 抛出ClassNotFoundException




Class< > inters[] = c.getInterfaces();


for(int i=0;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 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 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();




Class c = Class.forName("Person");
Constructor< > cons[] = c.getConstructors();
Person p = (Person)cons[0].newInstance("xiazdong",15);


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java实现时钟 下一篇Java生成javadoc

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: