Use an ‘&‘ instead:
public class MyWidget<T extends Enum<T> & MyInterface> {
...
}
The JLS calls this an “intersection type”, but I can find no mention of it in the Java tutorials. I’ll just say that it does exactly what you were wishing that “extends” would do.
Also, I should mention that you can have as many types as you want in the intersection type. So if you wanted, you could do:
public class MyWidget<T extends Enum<T> & MyInterface & Serializable & Cloneable> {
...
}
[Note: this code sample should not be construed as an endorsement of the Cloneable interface; it was merely handy at the time.]