[xuxueli/xxl-job]这段代码反射执行方法是不是把执行参数给丢了

2023-12-27 390 views

回答

1

逻辑修改

public void execute() throws Exception {
        Class<?>[] paramTypes = this.method.getParameterTypes();
        if (paramTypes.length > 0) {
            String jobParam = XxlJobContext.getXxlJobContext().getJobParam();
            Object[] objs = new Object[paramTypes.length];
            if (null != jobParam && !"".equalsIgnoreCase(jobParam.trim())) {
                objs[0] = jobParam;
            }

            this.method.invoke(this.target, objs);
        } else {
            this.method.invoke(this.target);
        }

    }

即可接收到jobParam

2

2.3.0版本已经改用XxlJobHelper.getJobParam的方式获取方法入参了,所以这个地方源码这样应该是不会影响功能的吧

4

惭愧惭愧,2.3.0的这个使用方法我刚知道,我是从2.2.0升级2.3.0的,照着demo改完之后突然发现参数丢了,这把我给急的。。。没仔细看2.3.0的realse 说明,太失败了

6

一样啊 真的惭愧,