我想知道C#是否有一个等同于<X super MySubClass>的泛型约束。要指定上界,可以使用class Foo<T> where T : MySuperClass { ... },但是如何在泛型参数上指定下界?有一些方法可以得到类似的结果,但我还没有发现完美的东西:
使用第二个泛型参数--但调用方可以指定实际下限的子类。这有时用于扩展方法,因此扩展方法的参数U被限制为类参数T<em
public class CoolBox extends Box<Integer> { ... }在我的代码中,我需要获得AmazingBox类的方法AmazingBox的返回类型,但是当通过反射访问其方法时,我将Object作为返回类型而不是Integer。有任何方法(普通的java或额外的库)将Integer作为返回类型吗?
例如,我有一个带有绑定类型参数的next类: void addItems(List<T> items);并在另一个带参数的类中使用}根据我的理解,问题是不知道第一个(ItemContainer)泛型参数是否与第二个(List)相同。好的解决方案可能是为方法定义泛型下限类型:
public <S super T> vo
该示例是借用的代码,但使用包装类ValidList嵌入实际列表。现在,当我使用诸如Size(min=1)这样的ootb注释时,验证就开始工作了。但是,如果我使用一个自定义注释(不要查看该功能,只在这里演示),我将得到臭名昭著的HV000030的500个错误:
No validator could be found for constraint'com.example.demo.validation.ListLength' validating type 'java.util.