javase--反射

//书写规则
 package cn.reflex;

 public interface PCI {

     public void open();
public void close();
}

  //调用方法

package cn. reflex ;

 import java.io.File;
import java.io.FileInputStream;
import java.util.Properties; public class Reflecttext { public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub Mainboard mb = new Mainboard();
mb.run(); File configFile = new File("PCI.properties");// 读取配置文件
Properties prop = new Properties();// 用来获取键值对的集合
FileInputStream fi = new FileInputStream(configFile);// 创建流将配置文件读取进来
prop.load(fi);// 将流加载进集合中 // 循环读取流中配置文件数据
for (int x = 0; x<=prop.size(); x++) { String pciName = prop.getProperty("pci" +x);
if (pciName!=null) {
Class<?> clazz = Class.forName(pciName);//用Class去加载pci子类对象 PCI pci = (PCI)clazz.newInstance();//新的对象实例化 mb.usePCI(pci);
}
}
fi.close();
}
}

  

 1  //运行主板

   package cn.reflex;

 public class Mainboard {

     public void run() {
System.out.println("主板运行");
} public void usePCI(PCI p) { if (p != null) {
p.open();
p.close();
} }
17  //插入声卡
 package cn.reflex;

 public class Netcard implements PCI {

     @Override
public void open() {
System.out.println("网卡打开");
}
@Override
public void close() {
System.out.println("网卡关闭");
} }
上一篇:SQL中查看数据库各表的大小


下一篇:运行循环 - RunLoop