1.1 简介
Java反射技术应用广泛,它能够配置:类的全限定名、方法和参数,完成对象的初始化,甚至是反射某些方法。这样就可以大大增强Java的可配置性,Spring Ioc的基本原理也是如此,当然Spring IoC要比反射复杂的多。
1.2 实例
第一步:创建一个ReflectImpl类
//ReflectImpl类
public class ReflectImpl {
public void sayhello(String name) {
System.out.println("hello:"+name);
}
}
第二步:将ReflectImpl进行反射,并执行
public class ReflectTest {
@Test
public void reflect() {
ReflectImpl impl = null;
try {
//通过反射获取对象
impl = (ReflectImpl) Class.forName("com.atisz.demo1.ReflectImpl").newInstance();
//获取反射对象中的方法
Method method = impl.getClass().getMethod("sayhello", String.class);
//注入参数
method.invoke(impl, "张三");
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}