Class.forName()讀取配置文件舉例

Class.forName()讀取配置文件舉例

  • 榨汁機(Juicer)榨汁的案例
    分別有水果(Fruit)蘋果(Apple)香蕉(Banana)桔子(Orange)榨汁(squeeze)
package com.heima.reflect;

import java.io.BufferedReader;
import java.io.FileReader;

public class Demo02_Reflect {

	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();
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章