Double generic constraint on class in Java: extends ConcreteClass & I

后端 未结 2 1229
萌比男神i
萌比男神i 2021-02-19 23:17

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         


        
相关标签:
2条回答
  • 2021-02-19 23:50

    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.

    0 讨论(0)
  • 2021-02-20 00:04

    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)

    0 讨论(0)
提交回复
热议问题