方法链如何工作?

如何在下面的示例中从getServletContext()调用getRequestDispatcher("xxx") ? 这样的调用程序如何工作? 请给我一个关于这个背景的清晰图片。

 RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/index.jsp"); dispatcher.include(request, response); 

getServletContext()返回一个ServletContext对象,该对象有一个名为getRequestDispatcher()的方法。 您的代码行只是两个方法调用的简写,相当于此代码:

 ServletContext context = getServletContext(); RequestDispatcher dispatcher = context.getRequestDispatcher("/index.jsp"); 

通常, 方法链接是一种很好的实践,可以实现流畅灵活的界面。 通常……为了实现它,您只需执行代码并返回当前对象。 例如,在Java中:

 public Criterios setOrdem(String campo, String direcao) { getOrdenacao().set(campo, direcao); return this; } public Criterios setOrdem(String campo) { return setOrdem(campo, Ordenacao.Direcao.ASC); } public final Criterios setPagina(int pagina) { getPaginacao().setPagina(pagina); return this; } public final Criterios setQuantidade(int quantidade) { getPaginacao().setQuantidade(quantidade); return this; } 

返回当前对象会反复提供相同的API ……但是,每次迭代时,对象都会逐步有序地更改。