spring的ProceedingJoinPoint如何串改参数?
我是这样写的
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类型。
回复
1个回答
test
2024-07-02
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)
}
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容