是否可以使用@Advice.OnMethodEnter从方法返回?

时间:2018-05-08 15:46:54

标签: java byte-buddy

使用Byte Buddy的建议API,是否可以从已检测的方法返回而不实际执行它?

一个用例是实现缓存并返回缓存的值(如果存在),而不是再次计算该值。

@Advice.OnMethodEnter
public static Object returnCachedValue(@Advice.Argument(0) String query) {
    if (cache.containsKey(query)) {
        // should "abort" method call
        return cache.get(query);
    }
}

我知道上面的代码示例只是创建了一个我可以在@Advice.OnMethodExit方法中获得的局部变量。但有没有办法在显式return上中止方法调用?如果是,这对于void方法也是可行的吗?

0 个答案:

没有答案