Как заменить проверку экземпляра во время выполнения обобщенной проверкой во время компиляции

Есть небольшая загадка для настоящего специалиста по Java Generics ...;)

Позволять'скажем, у меня есть следующие два интерфейса:

interface Processor {
    void process(Foo foo);
}

interface Foo {
    Processor getProcessor();
}

и, например, следующие два реализующих класса:

static class SomeProcessor implements Processor {
    static final SomeProcessor INSTANCE = new SomeProcessor();

    @Override
    public void process(Foo foo) {
        if (foo instanceof SomeFoo) { // 

Ответы на вопрос(6)

Ваш ответ на вопрос