https://ideone.com/6wVcrt/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
static interface Foo {
public void foo();
}
static class Bar implements Foo {
@Override
public void foo() {
System.out.println("Bar");
}
}
static class Qux implements Foo {
@Override
public void foo() {
System.out.println("Qux");
}
}
public static void main (String[] args) throws java.lang.Exception
{
Foo bar = new Bar();
Foo qux = new Qux();
bar.foo();
qux.foo();
}
}
Примерно так. Только у тебя не конструктор, а метод, который вернёт экземпляр какого-то класса, который реализует интерфейс RequestDispatcher. Реализацию можно найти по-разному. Иногда сервер приложений подставляет свою, иногда нужно настроить какую-то фабрику, иногда реализация внедряется как зависимость, иногда используют анонимный класс, чтобы на месте реализовать интерфейс.
Если в Idea ты зажмёшь ctrl и нажмёшь на слово "RequestDispatcher", то перейдёшь к определению этого интерфейса. Слева от строки с началом интерфейса скорее всего будет стрелка "вниз". Если нажать, то Idea покажет все доступные реализации этого интерфейса (хотя не всегда это удаётся).