反射简单实例(Class.forName()读取配置文件举例)
1、实例代码如下:
package com.jh.www;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Test2 {
public static void main(String[] args) throws Exception {
// Juicer j = new Juicer ();
// j.run(new Apple());
// j.run(new Banana());
//读取配置文件
BufferedReader br = new BufferedReader(new FileReader("config.properties"));
//获取类的字节码文件对象;
Class clazz = Class.forName(br.readLine());
//创建类的实例;
Fruit f = (Fruit) clazz.newInstance();
Juicer j = new Juicer ();
j.run(f);
}
}
interface Fruit{
public void squeeze();
}
class Apple implements Fruit{
public void squeeze() {
System.out.println("一杯苹果汁");
}
}
class Banana implements Fruit{
public void squeeze() {
System.out.println("一杯香蕉汁");
}
}
class Juicer{
public void run(Fruit f) {
f.squeeze();
}
}