重构JDK 8代码以删除冗余方法调用

时间:2019-12-20 09:59:24

标签: java java-8

我从JSF / @ Named bean中提取了以下代码,我希望以某种方式对其进行优化。

public List<MyObject> findObjectsByLanguage(String language) {

    return postProcess(webFacade.findObjectsByLanguage(language));
}


public List<MyObject> findRandomObjects(String language) {
    return postProcess(webFacade.findRandomObjectsByLanguage(language));
}

// many other similar methods that invoke postProcess
// ......
// ....

private List<MyObject> postProcess(List<MyObject> myObjects) {

    myObjects().forEach(

        (MyObject o) -> {
            // process and modify object
        }               
    );
    return myObjects;
}

webFacade是一个EJB,在传递到.xhtml页面之前,需要对接收到的实体进行一些后期处理。

这段代码可以完美地工作,但是我正在考虑JDK 8中是否有一些特殊功能或模式可以帮助重写代码并删除postProcess()。另外,我已经用JSF标记了这个问题,尽管严格来说这不是jsf问题,但也许CDI或JSF可以做到。

这里的主要问题是我无法修改EJB,因此开发人员应该记住用postProcess包装方法调用,这不是最好的方法。

我正在考虑类似于Servlet过滤器之类的东西。

0 个答案:

没有答案