Is there a way to define a generic constraint in Java which would be analogous to the following C# generic constratint ?
class Class1 where I : Interf
The simplest way I can see of resolving the Java code is to make Class2 an interface.
You cannot constrain a type parameter to extends more than one class or type parameter. Further, you can't use super here.
This code compiles here fine:
interface Interface1 {}
class Class2 {}
class Class1<I extends Interface1, T extends Class2 & Interface1> {}
Why do you need the I type there when you assume only Interface1 anyway? (you won't know anything more in your class about I than it extends Interface1)