方法链如何工作?

时间:2015-02-06 13:43:13

标签: java jsp servlets calling-convention method-call

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

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

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:0)

一般来说,method chaining是实现fluent和灵活接口的好习惯。 通常......为了实现它,您只需执行代码并返回当前对象。例如,在Java中:

public Criterios<T> setOrdem(String campo, String direcao) {
    getOrdenacao().set(campo, direcao);
    return this;
}

public Criterios<T> setOrdem(String campo) {
    return setOrdem(campo, Ordenacao.Direcao.ASC);
}

public final Criterios<T> setPagina(int pagina) {
    getPaginacao().setPagina(pagina);
    return this;
}

public final Criterios<T> setQuantidade(int quantidade) {
    getPaginacao().setQuantidade(quantidade);
    return this;
}

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