栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

通过一个动态编程的小案例帮你更好地理解反射的作用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过一个动态编程的小案例帮你更好地理解反射的作用

大家可能会思考,我们能用Java的反射来实现什么呢?

其实,我们更主要的是用反射来实现动态编程,那么什么是动态编程呢?

我们知道,当我们的类中有若干个方法时,我们实现这些方法的顺序是我们编码的时候就已经决定了的。就像这个类:

public class ReflectDemo {
    public void method1(){
        System.out.println("Method1");
    }
    public void method2(){
        System.out.println("Method2");
    }
    public void method3(){
        System.out.println("Method3");
    }
}

它的实现顺序肯定是先 Method1,然后 Method2,最后 Method3.这种称为非动态编程。

而动态编程就是我们类中方法的执行顺序是取决于我给你什么顺序,你就执行什么顺序。

所以动态编程的特点相比较于非动态编程更具有灵活性。

那么我们这个案例就是根据给定的方法名顺序来决定方法的执行顺序:

先上代码:

public class Test {
    public static void main(String[] args) throws Exception{
        ReflectDemo reflectDemo = new ReflectDemo();
        if (args != null && args.length >0){
            //获取ReflectDemo的Class对象
            Class clazz = reflectDemo.getClass();
            //通过反射获取ReflectDemo下的所有方法
            Method[] methods = clazz.getMethods();
            for (String str :args){
                for (int i = 0;i 

在此案例中,我们是以方法名作为参数,然后将其传递到Test中,让它来决定执行顺序。

关键点在于首先获取ReflectDemo的Class对象,然后再通过反射获取ReflectDemo下的所有方法

那么怎么传递呢?

我们可以通过main方法中的 String[] args,将方法名作为参数传递进来。

具体操作步骤:

 

 

 

这样就可以实现通过外部传递参数来改变方法的执行顺序了。

而此方法必须依赖于反射才可以实现。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/711197.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号