java反射學習一
阿新 • • 發佈:2018-08-12
forname exce pre 學習 rop ring new adl ati config.properties
//包名內容:[Class clazz1 = Class.forName("test.appium.Person");]
com.dd
//包名內容:[Class clazz1 = Class.forName("test.appium.Person");]
com.dd
/** * * 榨汁機(Juicer)榨汁的案例 * 分別有水果(Fruit)蘋果(Apple)香蕉(Banana)桔子(Orange)榨汁(squeeze) * @throws IOException */ public static void main(String[] args) throws Exception { Juicer j = new Juicer(); //創建榨汁機 //j.run(new Apple()); //j.run(new Orange()); BufferedReader br = new BufferedReader(new FileReader("config.properties")); Class clazz = Class.forName(br.readLine()); //獲取該類的字節碼文件 Fruit f = (Fruit) clazz.newInstance(); //創建實例對象 j.run(f); } } interface Fruit { public void squeeze(); } class Apple implements Fruit { public void squeeze() { System.out.println("榨出一杯蘋果汁兒"); } } class Orange implements Fruit { public void squeeze() { System.out.println("榨出一杯橘子汁兒"); } } class Juicer { /*public void run(Apple a) { a.squeeze(); } public void run(Orange o) { o.squeeze(); }*/ public void run(Fruit f) { f.squeeze(); }
java反射學習一