美文网首页
反射配置文件控制执行main类

反射配置文件控制执行main类

作者: 开心的小哈 | 来源:发表于2021-11-04 21:27 被阅读0次

反射配置文件并执行配置文件的类和内容
1.创建对应的类

package com.itheima;

public class Actor {
    private String name;
    private String print="西欧i";

    public String getPrint() {
        return print;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        System.out.println(name);
        return name;
    }

   public Actor(String name){
        this.name=name;
   }

    @Override
    public String toString() {
        return "com.itheima.Actor{" +
                "name='" + name + '\'' +
                '}';
    }
}


2.类2

package com.itheima;

public class Sanyuan {
   String name="三元";

    public String getName() {
        System.out.println(name);
        return name;
    }
}


3.创建配置文件并设置

className=com.itheima.Actor
methodName=getName

4.反射类

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Testjava {


    public static void main(String[] args) throws IOException, ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
    //加载数据
        Properties or=new Properties();
        FileReader fileReader = new FileReader("src\\class.txt");
        or.load(fileReader);
        fileReader.close();
        String className = or.getProperty("className");
        String methodName = or.getProperty("methodName");
        //通过反射来使用
        Class<?> aClass = Class.forName(className);
        Constructor<?> constructor = aClass.getConstructor(String.class);
        Object o = constructor.newInstance("123123123213");
        Method method = aClass.getMethod(methodName);
        method.invoke(o);

    }
}

相关文章

网友评论

      本文标题:反射配置文件控制执行main类

      本文链接:https://www.haomeiwen.com/subject/qoujoltx.html