方法链如何工作?
如何在下面的示例中从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 ……但是,每次迭代时,对象都会逐步有序地更改。