通过反射运行配置文件内容

通过反射运行配置文件内容

class.txt文件中的内容:

className=day27.Worker

methodName=love

 

public classWorker {

   public void love() {

      System.out.println("爱生活,爱工作");

   }

}

 

import java.io.FileReader;

import java.lang.reflect.Constructor;

import java.lang.reflect.Method;

import java.util.Properties;

 

/*

 * 通过配置文件运行类中的方法

 *

 * 反射:

 *             需要有配置文件配合使用。

 *             用class.txt代替。

 *             并且你知道有两个键。

 *                      className

 *                      methodName

 */

public class Test {

         publicstatic void main(String[] args) throws Exception {

                   //反射前的做法

                   //Student s = new Student();

                   //s.love();

                   //Teacher t = new Teacher();

                   //t.love();

                   //Worker w = new Worker();

                   //w.love();

                   //反射后的做法

 

                   //加载键值对数据

                   Propertiesprop = new Properties();

                   FileReaderfr = new FileReader("class.txt");

                   prop.load(fr);

                   fr.close();

 

                   //获取数据

                   StringclassName = prop.getProperty("className");

                   StringmethodName = prop.getProperty("methodName");

 

                   //反射

                   Classc = Class.forName(className);

 

                   Constructorcon = c.getConstructor();

                   Objectobj = con.newInstance();

 

                   //调用方法

                   Methodm = c.getMethod(methodName);

                   m.invoke(obj);

         }

}

运行结果:

         爱生活,爱工作

你可能感兴趣的:(反射)