首页 > 编程语言 > 详细

Java 反射案例

时间:2020-12-27 02:11:19      阅读:27      评论:0      收藏:0      [点我收藏+]

1案例

需求:需要写一个“框架”,不能改变该类的任何代码的前提下,可以帮我们创建任意类的对象,并且执行其中的任意方法

1.1实现

1.1.1配置文件

1.将需要创建的对象的全类名和需要执行的方法定义在配置文件中

在src的目录下创建pro.properties文件,具体配置文件代码如下

className = com.levizhao.demo01.reflection.Student  //类的路径
methodName = sleep //类中的函数

2.反射

1.在程序中加载读取配置文件

2.使用反射技术来加载类文件进内存

3.创建对象

4.执行方法

ReflectTest.java代码如下

package com.levizhao.demo01.reflection;
/*
     框架类
 */

import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.Properties;

public class ReflectTest {
    public static void main(String[] args) throws  Exception {
        //可以创建任意类对象,可以创建任意类对象,执行任意方法
        //1.加载配置文件
        //1.1创建Properties对象
        Properties pro = new Properties();
        //1.2加载配置文件,转换为一个集合
        //1.2.1获取class目录下的配置文件
        ClassLoader classLoader = ReflectTest.class.getClassLoader();
        InputStream is = classLoader.getResourceAsStream("pro.properties");
        pro.load(is);

        //2.获取配置文件中的定义的数据
        String className = pro.getProperty("className");
        String methodName = pro.getProperty("methodName");

        //3.加载该类进内存
        Class aClass = Class.forName(className);

        //4.创建对象
        Object o = aClass.newInstance();
        //5.获取方法对象
        Method method = aClass.getMethod(methodName);
        //6.执行方法
        method.invoke(o);
    }
}

3.总结

这样的好处是仅更改配置文件就可以增加程序的扩展性,不用再修改代码就可以实现代码的灵活变动。这就是反射的魅力!

Java 反射案例

原文:https://www.cnblogs.com/withLevi/p/14194196.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!