反射类相关理解练习

1.定义接口
public interface Action {

 public void execute();
 
}
2.实现接口的类Test
public class Test implements Action{

 public Test(){
  System.out.println("test被实例化");
 }

 @Override
 public void execute() {
  System.out.println("方法被执行!"); 
 }
}
3.工厂类FactoryBean
import java.io.FileInputStream;
import java.util.Properties;
public class BeanFactory {

 //properties是map的子类
 private Properties pros = new Properties();
 public BeanFactory(String fileName) {
  //通过路径fileName扫描资源文件
  FileInputStream fis;
  try {
   fis = new FileInputStream(fileName);
   pros.load(fis);
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 public Object getBean(String beanName) {
  String className = pros.getProperty(beanName);
  Object obj = null;
  //Class实例用于到文件扫描,将信息装载到该实例中
  Class clazz;
  try {
   //找到并返回一个类存储在类型为Class的类里
 clazz = Class.forName(className);//查找到资源文的"com.wjj.action.LoginAction"进行加载
   obj = clazz.newInstance();//在这里实例化该类"com.wjj.action.LoginAction"
  } catch (Exception e) {
   e.printStackTrace();
  }
  return obj;
 } 
 public static void main(String[] args) {
  BeanFactory fb = new BeanFactory("E://test.xml");
  Action action = (Action)fb.getBean("test");
  action.execute();
 }
}
其中在test.xml
test=com.wjj.test.Test
4.结果
test被实例化
方法被执行


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值