Loading

javase--反射

//书写规则
1 package cn.reflex;
2 
3 public interface PCI {
4     
5     public void open();
6     public void close();
7 }

  //调用方法

package cn. reflex ;
 2 
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 import java.util.Properties;
 6 
 7 public class Reflecttext {
 8 
 9     public static void main(String[] args) throws Exception {
10         // TODO Auto-generated method stub
11 
12         Mainboard mb = new Mainboard();
13         mb.run();
14         
15         File configFile = new File("PCI.properties");// 读取配置文件
16         Properties prop = new Properties();// 用来获取键值对的集合
17         FileInputStream fi = new FileInputStream(configFile);// 创建流将配置文件读取进来
18         prop.load(fi);// 将流加载进集合中
19 
20         // 循环读取流中配置文件数据
21         for (int x = 0; x<=prop.size(); x++) {
22             
23             String pciName = prop.getProperty("pci" +x);
24             if (pciName!=null) {
25                 Class<?> clazz = Class.forName(pciName);//用Class去加载pci子类对象
26                 
27                 PCI pci =  (PCI)clazz.newInstance();//新的对象实例化
28                 
29                 mb.usePCI(pci);
30             }
31         }
32         fi.close();
33     }
34 }
  
 1  //运行主板

  package cn.reflex; 2 3 public class Mainboard { 4 5 public void run() { 6 System.out.println("主板运行"); 7 } 8 9 public void usePCI(PCI p) { 10 11 if (p != null) { 12 p.open(); 13 p.close(); 14 } 15 16 } 17  //插入声卡
 1 package cn.reflex;
 2 
 3 public class Netcard implements PCI {
 4 
 5     @Override
 6     public void open() {
 7         System.out.println("网卡打开");
 8     }
 9     @Override
10     public void close() {
11         System.out.println("网卡关闭");
12     }
13 
14 }

 

posted @ 2016-09-17 15:08  书中人007  阅读(299)  评论(0编辑  收藏  举报
拈花微笑·恬淡诠释生命