应用
1.配置:类的全限定名,方法和参数,完成对象的初始化(构建对象)
2.反射:某些类中方法(方法的反射调用)
等........(SpringIOC是通过反射实现的)
核心包
通过java.lang.reflect.*包来实现的
实例
1 //假设一个user类中包含一个say方法,方法入参为String类型 2 public Object getInstance(){ 3 User user=null; 4 try{ 5 //反射生成对象 6 user=(User)Class.forName("com.pojo.User").newInstance(); 7 //反射调度方法 8 Method method=user.getClass().getMethod("say",String.class); 9 method.invoke(user,"你好");10 }catch(............){11 //抛出异常............12 }13 return user;14 }
注:
1.forName:加载到类的加载器
2.newInstance():该方法生成对象
3.getConstructor():该方法定义参数类型
好处
增强了Java的可配置性和可扩展性,解除程序的耦合度,灵活
缺点
运行慢