Как заменить проверку экземпляра во время выполнения обобщенной проверкой во время компиляции
Есть небольшая загадка для настоящего специалиста по 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) { //