针对反射应用的心得——参数传递

进公司后,上头安排了一个自动任务的开发,大概就是有一个自动任务,然后还有一个分任务,主任务与分任务中间通过zhu外键关联。 

本来自动任务的直接使用反射就可以实现,不过却需要传递参数。通过百度最终解决了。做一个总结,避免忘记。

主任务的代用代码:

 //根据路径获取类信息
            Class classSchedule = Class.forName(scheduleClass);
            //根据参数获取类的构造函数
            Constructor css =  classSchedule.getConstructor(String.class);
            //执行反射
            Runnable obj = (Runnable) css.newInstance(RunningCd);

其中 css.newInstance(RunningCd) 会直接代用 反射类带有参数的构造方法。如下面的代码

 public  BsdSheduleRunningSqlController(String runningCd){
        this.runningCd = runningCd;

    }

    // 自动任务控制器
    @Override
    public void run() {
        System.out.println(runningCd+"");
        System.out.println("第一次查找");
        List<BsdSheduleRunningSql> bsdSheduleRunningSqlList = findRunningSQLByRunningCd(runningCd);
        if(bsdSheduleRunningSqlList.size()>0){
            for(BsdSheduleRunningSql bsSql:bsdSheduleRunningSqlList){
                System.out.println("第二次执行");
                SheduleRunningMothd(bsSql.getRunningSql());
            }
        }else{
            System.out.println("没有需要的执行任务");
        }

    }

该自动任务业务的部分代码,真正阐述的并不是自动任务,而是反射技术传递参数的应用。

毕竟 不同的框架定义的自动任务方式并不是一样的。有兴趣的同志们可以看一下不同框架的自动任务实现。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值