spring的ProceedingJoinPoint如何串改参数?

2023-06-19 282 0

我是这样写的

    public Object handle(ProceedingJoinPoint thisJoinPoint) throws Throwable {
        Object[] objects = thisJoinPoint.getArgs();
        for (int i = 0; i < objects.length; i++) {
            Object o = objects[i];
            String json = JSONObject.toJSONString(o);
            JSONObject data = JSONObject.parseObject(json);
            data.put("sex", 20);
            objects[i] = data;
        }
        System.out.println(JSONObject.toJSONString(objects));
        Object result = thisJoinPoint.proceed(objects);
        System.out.println(result);
        return result;
    }

这样data不是原来的那个Object类型。

 JSONObject data = JSONObject.parseObject(json);
 data.put("sex", 20);
 objects[i] = data;

data被你改成了JSONObject 类型;
如果你想对data设置属性,建议你通过 instaceof 来判断以后进行强转后再调用setSex方法即可
例如:

if(objects[i] instanceof User){
((User) objects[i]).setSex(20)
}

回答

相关文章

nuxt2部署静态化和ssr的时候访问首页先报404再出现首页为什么?
`clip-path` 如何绘制圆角平行四边形呢?
多线程wait方法报错?
VUE 绑定的方法如何直接使用外部函数?
vue2固定定位该怎么做?
谁有redis实现信号量的代码,希望借鉴一下?