JAVA反射机制示例

 JAVA反射机制,一般通过接口和一个配置文件实现,一般用XML文件,本例子用properties文件实现。例子大意:在电脑上有声卡,网卡,等等,这些卡都有打开和关闭等功能,而这些功能可以抽取出来做成接口。

首先定义一个声卡类,声卡类中有打开和关闭两个功能,而网卡中也有这样的功能,所以将这两个功能抽取成接口,可以供其他卡实现

public interface PCI {

	public abstract void open();

	public abstract void close();

}

public class SoundCard implements PCI {

	public void open(){
		System.out.println("声卡打开。。。");
	}

	public void close(){
		System.out.println("声卡关闭。。。");
	}
}
在定义主板类

public class MainBoard {

 public void usePCI(PCI p){
	 p.open();
	 p.close();
 }

}
测试类
public class Test {

	public static void main(String[] args) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException {
		// TODO Auto-generated method stub
      MainBoard mainBoard = new MainBoard();
 
      
      File f = new File("pci.properties");
      FileInputStream fis = new FileInputStream(f);
      Properties pro = new Properties();
      pro.load(fis);

     for(int i=0;i<pro.size();i++){
   	       String pciName = pro.getProperty("pci"+i);
           Class clazz = Class.forName(pciName);
           PCI p= (PCI)clazz.newInstance();
           mainBoard.usePCI(p);
      }
     
   }

}
而此时只需在properties文件中配置声卡的全类名pci0=reflect.test.SoundCard。
若此时想要增加网卡,只需网卡类把PCI接口实现,然后在配置文件中增加pci1=reflect.test.NetCard配置

public class NetCard implements PCI {

	@Override
	public void open() {
		// TODO Auto-generated method stub
        System.out.println("网卡打开。。。。。。。。");
	}

	@Override
	public void close() {
		// TODO Auto-generated method stub
		   System.out.println("网卡关闭。。。。。。。。");
	}

}
运行结果:

总结:JAVA的反射机制增加了程序的可扩展性。对于框架的理解有帮助。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值