Java反照大阅兵

Java反射大阅兵

1. 取得类装载器

ClassLoader cl = String.class.getClassLoader();

 2. 根据类装载器加载类到虚拟机

Class aef = cl.loadClass("com.xunshibao.SomeClassToBeLoaded");

 3. 获取类的构造器

Constructor aefCtor = aef.getConstructor(ParameterType.class);

 4. 调用构造器创建对象实例

Object baefValue = aefCtor.newInstance(evaluator);

 5. 获取方法

Method setter = container.getClass().getMethod("setAttributeEvaluatorFactory", aef);
setter.invoke(container, baefValue);

 6. 如果方法为protected或private,强制设置其为可访问

setter.setAccessible(true);

 

暂时到这里,TBC