关于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");
理解反射 不是一定会用到反射
就想你懂网络 不一定一定会用到网络一样
理论是你对一种技术的理解 理解了才会得心印手!
|
|