Source:Design Patterns web based applications
interface A {
void doAStuff();
}
interface B {
void doBStuff();
}
interface C {
void doCStuff();
}
public static <T extends A & B & C> void doStuff (T to) {
to.doAStuff();
to.doBStuff();
to.doCStuff();
}