zoukankan      html  css  js  c++  java
  • 反射的简单应用2

    import java.io.FileReader;
    import java.io.FileWriter;
    import java.lang.reflect.Constructor;
    import java.lang.reflect.Method;
    import java.util.Properties;

    需求:通过配置文件运行类中的方法
    public class ReflectTest {
        public static void main(String[] args) throws Exception {
            /*
             * 反射之前的做法
             */
    //      Student s = new Student();
    //      s.show();
    //      Teacher t = new Teacher();
    //      t.show();
    //      Worker w = new Worker();
    //      w.show();
            //反射之后
            //设置、获取配置文件信息
            Properties prop = new Properties(); 
            FileReader fr = new FileReader("part.txt");
            prop.load(fr);
            prop.setProperty("className", "反射练习.Worker");
            FileWriter fw = new FileWriter("part.txt");
            prop.store(fw, "info");
            String className = prop.getProperty("className");
            String methodName = prop.getProperty("methodName");
            fr.close();
            fw.close();
            //--------------------------------
            //获取字节码文件对象
            Class c = Class.forName(className);
            //获取构造方法对象
            Constructor con = c.getConstructor();
            //通过构造方法对象,创建对象(无参)
            Object obj = con.newInstance();
            //获取单个成员方法
            Method m = c.getMethod(methodName);
            m.invoke(obj);
        }
    }
    
    很多事情即将开始,很多人的命运即将改变
  • 相关阅读:
    洛谷P1908《逆序对》
    洛谷P3884《[JLOI2009]二叉树问题》
    最近公共祖先 LCA
    洛谷P1531《I Hate It》
    洛谷P1563「NOIP2016」《玩具谜题》
    乘法逆元求法
    CF56E 【Domino Principle】
    CF638C 【Road Improvement】
    Luogu
    2018.8.7提高B组模拟考试
  • 原文地址:https://www.cnblogs.com/liuzk/p/12458967.html
Copyright © 2011-2022 走看看