В Java нет ничего подобного, я бы добавил третий элемент, реализующий два интерфейса, и использовал бы его в качестве параметра. И для меня это имеет смысл, поскольку третий объект не является ни IF1, ни IF2, это просто IF3.
interface a {
int foo();
}
interface b {
long foo2();
}
interface c extends a, b {
long daaa();
}
public class TestInterface {
void someMethod (c theThird) {
return;
}
}
это имеет смысл для меня.
EDIT:
Не знал о
public <I extends a & b> void methodName(I i){
}
Однако я нашел это запутанным. Если объект должен реализовывать два разных интерфейса, я предпочитаю иметь третий. ИМХО это чище.