You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring AOP @Around通知返回值何时向下转型?

Spring AOP @Around通知返回值的转型时机

你提到的@Around通知用Object作为返回类型,是为了适配任意返回类型的目标方法。关于返回值何时转为实际类型,核心逻辑如下:

  1. 代理不会提前执行转型:Spring生成的代理对象在跑完切面逻辑、拿到joinPoint.proceed()返回的结果(这里实际是String实例,只是用Object类型接收)后,会直接把这个Object实例返回给调用方。

  2. 转型发生在调用方代码执行时:主方法里的String result = account.getAccountHolderName();这一行,就是触发向下转型的实际时机。Java编译器会自动在这里插入隐式类型转换,等效于执行String result = (String) account.getAccountHolderName();。

这个转型是安全的,因为joinPoint.proceed()调用的目标方法getAccountHolderName()本身返回的就是String类型,通知返回的Object本质上就是String实例,不会出现类型转换异常。

对应的代码示例:
主方法代码:

String result = account.getAccountHolderName();

切面类代码:

@Around("execution(* getAccountHolderName())")
public Object myAroundAdvice(ProceedingJoinPoint joinPoint)  
{
   Object result = joinPoint.proceed();
   return result;
}

内容的提问来源于stack exchange,提问作者Pranav Kopnar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 00:18:24