我有几个方法开始(让我们称之为块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
}
非常感谢你的帮助:))