1 回答
![?](http://img1.sycdn.imooc.com/5333a1bc00014e8302000200-100-100.jpg)
TA贡献1827条经验 获得超9个赞
您似乎使用了错误的注释或功能。
我建议检查更简单的情况。例如替换您的实现:
@RuntimeType
public static Object intercept(@SuperCall Callable<?> superCall, @SuperMethod Method superMethod, @Origin Method currentMethod,
@AllArguments Object[] args, @This(optional = true) Object me) throws Exception {
return superCall.call();
}
下一个:
@RuntimeType
public static Object intercept(@RuntimeType Object value) throws Exception {
return value;
}
在这种情况下,您可以避免递归调用,但可能会有机会检测和分析不同的问题,这很清楚并且与您的情况有关。
可能你也应该注意概念问题。您知道java使用Callable对象的开发人员不应该call()直接使用。
以下 API 描述用于@RuntimeType从一个对象映射到另一个对象。出现了新问题:为什么需要转换callable对象?它将转换为哪种类型(您确定没有 Future 包装器,您将在那里有一个对象。null可能会导致您的异常,不是吗?)?
添加回答
举报