JAVA,反射使用demo,通过读取配置文件创建类,调用方法

摘要:
˃c1=Class.forName;//创建对象Objectobj=c1.newInstance();//获取方法对象Methodc1Method=c1.getMethod;//调用方法执行c1Method.invoke;}}

反射的好处:通过读取配置文件拿到类的全路径和方法,可以不改变代码的前提下,创建任意对象,调用任意方法。

测试student类如图:

JAVA,反射使用demo,通过读取配置文件创建类,调用方法第1张

配置文件如图:

JAVA,反射使用demo,通过读取配置文件创建类,调用方法第2张

运行如图:

JAVA,反射使用demo,通过读取配置文件创建类,调用方法第3张

测试代码如下:

packagecom.java.day31UseReflect;

importjava.io.IOException;
importjava.io.InputStream;
importjava.lang.reflect.InvocationTargetException;
importjava.lang.reflect.Method;
importjava.util.Properties;

//不改变任意代码前提下,创建任意对象,并执行任意方法
//步骤 配置文件和反射
public classUseReflect {
    public static void main(String[] args) throwsIOException, ClassNotFoundException, NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException {
        //加载配置文件
        Properties pro = newProperties();
        ClassLoader classLoader = UseReflect.class.getClassLoader();
        //找到文件路径,加载文件
        InputStream stream = classLoader.getResourceAsStream("conf.properties");
        pro.load(stream);
        //读取配置文件,拿到类路径和方法
        String className = pro.getProperty("className");
        String methodName = pro.getProperty("methodName");
        //拿到字节码,加载进内存
        Class<?> c1 =Class.forName(className);
        //创建对象
        Object obj =c1.newInstance();
        //获取方法对象
        Method c1Method =c1.getMethod(methodName);
        //调用方法执行
c1Method.invoke(obj);


    }
}

免责声明:文章转载自《JAVA,反射使用demo,通过读取配置文件创建类,调用方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SUSE12SP3-Mysql5.7安装Servlet 运行原理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

springsession生成sessionid不一致问题解决

毫无疑问,我遇到的主要问题是两个不同版本的spring boot,需要共享sessionid。...

解决IDEA打包出现中文乱码的问题

解决方案:1.打开IDEA文件中的设置。...

nginx 浏览php的时候会变成下载

php的时候会变成下载:这是因为nginx没有设置好碰到php文件时,要传递到后方的php解释器。当然啦,你的php-fpm解析器也需要正常运行,并监听好9000端口,才能最终生效并有效处理php脚本。windows下开启监听的办法,php-cgi.exe-b127.0.0.1:9000-cphpphp.ini待续:。。。。。...

如何修改cmd控制台默认编码为utf-8

如何修改cmd控制台默认编码为utf-81.打开cmd窗口后,在窗口顶部右击选择属性,选中选项后会看到默认编码为gbk2.然后我们在默认窗口路径内,输入chcp命令后回车936就表示gbk编码3.然后在窗口中输入chcp65001,然后回车,即可看到窗口默认编码为utf-8编码了(65001代表utf-8编码)4.上面的方法每次都要重新设置,接下来的方法是永...

某音乐平台付费音乐破解

前三个字节是ID3,这个是MP3文件格式的头部0x04保存.mp3格式即可...