日期:2014-05-20 浏览次数:20854 次
package com.xuz.csdn.aug4; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; public class ReflectTest { public static void main(String[] args) { Class c = MyClass.class; try { Constructor<?> cons = c.getConstructor(String.class); System.out.println(cons); } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } Field[] fields = c.getDeclaredFields(); for (Field field : fields) { System.out.println(field); } Method[] methods = c.getDeclaredMethods(); for (Method method : methods) { System.out.println(method); } } }
------解决方案--------------------
http://www.java2000.net/p6982
------解决方案--------------------
反射就是把java类的某些信息映射成一个java类。
------解决方案--------------------
反射机制的基本用处是:通过字符串 创建对象,调用方法,设置属性值
这个是所有基于配置的框架的基础,想象那些XML中的类名或者方法是怎么被invoke的
假设你有一组类,可以写一个(仅一个)基于反射的程序,读入不同的xml文件,执行得到不同的效果,这是我理解的基于配置的程序;
而一个普通的程序 new 对象 调用方法,你可以预期其执行过程和效果,而反射的话就不知道了,配置决定
------解决方案--------------------
关注中……
------解决方案--------------------
反射机制就是 java在运行阶段 根据类名,获取到类的属性、方法信息(能获取到方法名称,但是不会获取到方法的具体实现) 与之有关的还有类加载器、代理机制。你如果接触到spring的东西,能理解的快些,spring在使用xml bean方式依赖注入时是比较典型的反射机制。
------解决方案--------------------
String a="AClass";
如果有AClass这个类或方法的话,就可以通过反射由a或者"AClass"得到这个类或方法