3 回答
TA贡献1898条经验 获得超8个赞
您可以尝试这种方法(我不一定提倡这样做,但它确实维护了链条)。您创建一个包含链所需的所有参数的 POJO,并将相同的 POJO 向下传递。这里的缺点是向链中添加其他方法有点麻烦,因为您现在还必须向参数类添加一个属性。
public class SomeMethodContext {
private Object a;
private Object b;
private Object c;
private Object d;
private Object foo;
private Object bar;
// Getters and setters
}
// ...
CompletionStage<E> someMethod() {
return doSomething().thenCompose(a -> {
SomeMethodContext context = new SomeMethodContext();
context.setA(a);
// ...
context.setFoo(fooDAO.getFoos(context.getA()));
// ...
context.setB(b);
return context;
}).thenCompose(ctxt -> {
// ...
ctxt.setC(c);
return ctxt;
}).thenCompose(ctxt -> {
// ...
ctxt.setBar(barDAO.getBars(ctxt.getFoo()))
// ...
ctxt.setD(d)
return ctxt;
}).thenApply(ctxt -> {
// ...
return someResult(ctxt.getD(), ctxt.getBar());
});
}
添加回答
举报