В моей программе на Java происходит нечто подобное:
void f(Object o) {
g(o);
}
<T extends MySuperClass & MyInterface> void g(T x) {
...;
}
Как я могу разыграть, чтобы это работало? Кажется, нет никакого способа указать и базовый класс, и интерфейс в объявлениях переменных без использования обобщений. Я не думаю, что дженерики будут работать здесь, потому что o создается динамически с использованием отражения, поэтому его фактический класс не известен во время компиляции.
(Да, я знаю, что это странная вещь, которую нужно сделать. Но мне действительно нужны функциональные возможности как суперкласса, так и интерфейса. Я думаю, что я мог бы выполнить всю проверку типов во время выполнения с instanceof, но это просто кажется, Java 1.4 ...)