标签:
//java 实现反射 //首先定义一个接口Ishow.java public interface Ishow(){ void show(String str); } //建立一个demo.java文件实现接口 public class demo implements Ishow{ public void show(String str){ Ssytem.out.println(str); } } //建立test.java文件来测试 public class test{ public static void main(String args[]){ String str ="p1.demo"; //包名+反射的类名 try(){ Class c1 =Class.forname(str); try(){ Ishow a =c1.newInstance(); // 类加载机制 a.show("qq"); }catch(InstantiationException e){ e.printStackTrace(); }catch(IllegalAccessException e){ e.printStackTrace(); }catch(ClassNotFoundException e){ e.printStackTrace(); } } } } //java实现动态配置 实现反射 //Ishow 和demo 不变 public interface Ishow(){ void show(String str); } public class demo implements Ishow{ public void show(String str){ Ssytem.out.println(str); } } 建立PropertiesUtil.java import java.util.Properties; public class PropertiesUtil{ Properties p = new Properties(); //new 一个properties对象 try(){ p.load(PropertiesUtil.class.getResourceAsStream("show.properties"));加载show.properties }catch(IOException e){ e.printStackTrace(); } return p; } //建立 show.properties文件 show=p1.demo //建立test.java文件来测试 public class test{ public static void main(String args[]){ //此处的包+类名是通过动态文件show.properties来加载的 Properties p =Properties.getShowProperties(); String str = p.getProperty("show"); try(){ Class c1 =Class.forname(str); try(){ Ishow a =c1.newInstance(); // 类加载机制 a.show("qq"); }catch(InstantiationException e){ e.printStackTrace(); }catch(IllegalAccessException e){ e.printStackTrace(); }catch(ClassNotFoundException e){ e.printStackTrace(); } } } }
标签:
原文地址:http://my.oschina.net/kakoi/blog/519142