黑马程序员技术交流社区

标题: java反射 [打印本页]

作者: 冯超    时间: 2014-5-29 14:37
标题: java反射
关于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");

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





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2