首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ejb拦截器是否可以在调用类获取方法返回值之前更改该方法的返回值?

ejb拦截器是否可以在调用类获取方法返回值之前更改该方法的返回值?
EN

Stack Overflow用户
提问于 2012-07-26 07:02:29
回答 1查看 3.3K关注 0票数 8

如果我们在字段中有代码,该代码具有另一个产品调用的方法,并获得返回的对象列表。我们需要对代码进行更改,使其在填充要返回的列表时更加灵活,我们是否可以在过渡期间为客户创建一个拦截器,该拦截器在方法返回列表之前拦截该方法,并在调用该方法的产品获取列表之前从列表中删除项。

例如:

OurCode.search()返回foundObjects的列表

其他产品调用OurCode.search,收到100个项目

我们是否可以创建一个拦截器,在OurCode.search返回之前进行拦截,并更改foundObjects列表,删除不必要的项?在将来的版本发布之前,这只是一个临时的修复

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-26 14:17:50

虽然我不建议这样做(为了便于理解,根据我的经验,“临时修复”将成为永久修复),但您可以使用拦截器来完成此操作。

代码语言:javascript
复制
@AroundInvoke
Object filterSearchResults(InvocationContext ctx) throws Exception {
    Object result = ctx.proceed();
    if ( result != null) {
        List<SearchResult> results = (List<SearchResult>)result;
        // do whatever you want to to with your results here
        return results;
    }
    return result;
}
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11659936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档