好奇心から HttpServlet クラスのコードを調べたところ、その親クラス「GenericServlet」がインターフェース「ServletConfig」で宣言されたメソッド「getServletName()」を定義していることがわかりました。ただし、ServletConfig のオブジェクト「sc」が null でない場合、GenericServlet の getServletName() メソッドは「sc.getServletName()」を呼び出します。メソッドの実装を確認するために Eclipse で ctrl+click を実行すると、自分自身を呼び出しているように見えるため、この機能がどのように機能するのか理解できませんでした。HttpServlet クラスにもオーバーライドされた実装はありません。
GenericServlet の実装のスナップショットを次に示します。
public String getServletName() {
ServletConfig sc = getServletConfig();
if (sc == null) {
throw new IllegalStateException(
lStrings.getString("err.servlet_config_not_initialized"));
}
return sc.getServletName();
}
誰でもこれについて教えてもらえますか..