У меня есть вопрос с генераторами Java. Я надеялся, что кто-то сможет ответить. Рассмотрим следующий код:Реализация универсального интерфейса в Java
public interface Event{}
public class AddressChanged implements Event{}
public class AddressDiscarded implements Event{}
public interface Handles<T extends Event>{
public void handle(T event);
}
Я хочу осуществить это Рукоятки интерфейс, как это:
public class AddressHandler implements Handles<AddressChanged>, Handles<AddressDiscarded>{
public void handle(AddressChanged e){}
public void handle(AddressDiscarded e){}
}
Но Java не позволит реализовать Рукоятки дважды с помощью Generic. Я смог выполнить это с помощью C#, но не могу определить обходное решение в java без использования Reflection или instanceof и casting.
Есть ли способ в Java реализовать интерфейс Handles, используя оба общих интерфейса? Или, возможно, еще один способ написать интерфейс Handles, чтобы конечный результат мог быть достигнут?
Это спорно ... Это "InstanceOf каскад" является очень процедурной paragidm. Конечно, это работает, но ИМХО это не очень хороший стиль. Но, следовательно, наличие разных имен методов также может быть не идеальным, это, вероятно, вопрос вкуса. – 2010-12-01 15:43:17
Это то, что я сделал бы. Вам не обязательно :) – 2010-12-01 15:44:41
-1: Вы можете реализовать несколько интерфейсов в Java. – 2010-12-01 15:45:40