A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冯超 高级黑马   /  2014-5-29 14:37  /  909 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

关于java反射,在有名的ssh中都用到过,比如Spring 配置bean 通过字符串来实例化该类,hibernate映射数据库,Struts中的拦截器invoke().

反射中常用的方法:
Field[] fields = clazz.getFields();  //获取属性为public的字段
Field[] fields = clazz.getDeclaredFields(); //获取所有属性的字段



Method[] methods = clazz.getMethods();  //获取修饰为public的 方法
Method[] methods = clazz.getDeclaredMethods(); //获取所有的方法


Constructor[] construtors = clazz.getConstructors();  //获取修饰为public的构造方法
Constructor[] construtors = clazz.getDeclaredConstructors();  //获取所有的构造方法



Method m = clazz.getMethod("eat");
m.invoke(clazz.newInstance());  //调用该方法


调用带有参数的构造方法
Dog d = (Dog) clazz.getConstructor(new Class[]{String.class}).newInstance("zxzx");

理解反射 不是一定会用到反射
就想你懂网络  不一定一定会用到网络一样
理论是你对一种技术的理解 理解了才会得心印手!

5 个回复

倒序浏览
此帖仅作者可见
使用道具 举报
此帖仅作者可见
使用道具 举报
此帖仅作者可见
使用道具 举报
此帖仅作者可见
使用道具 举报
此帖仅作者可见
使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马