Java匿名函数依赖于调用方法中的代码

时间:2015-07-14 13:05:35

标签: java

我有几个方法开始(让我们称之为块A)和结束(块C)使用相同的代码,只有中间的代码(块B)在每个方法中是不同的。我想制作一个单独的方法,以某种方式将块B作为参数并在块A和C之间执行。可以使用匿名函数轻松完成,但问题是块B依赖于块A,并阻塞C取决于块B.

这是一些虚构的代码,说明了我想要完成的事情(当然,代码无法编译):

public void method() {
    wrapper(new Function() {
        @Override
        public void execute() {
            // notice that variable x is defined in "wrapper"
            x += 1;
        }
    })
} 

public void wrapper(Function func) {
    int x = 5; // BLOCK A

    func.execute(); // BLOCK B, now x should be 6

    System.out.println(x) // BLOCK C
}

非常感谢你的帮助:))

0 个答案:

没有答案