- 应用
- 配置:类的全限定名,方法和参数,完成对象的初始化(构建对象)
- 反射:某些类中方法(方法的反射调用)。等........(SpringIOC是通过反射实现的)
- 核心包:通过java.lang.reflect.*包来实现的
- 实例
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }
- 注:
- forName:加载到类的加载器
- newInstance():该方法生成对象
- getConstructor():该方法定义参数类型
- 好处:增强了Java的可配置性和可扩展性,解除程序的耦合度,灵活
- 缺点:运行慢