Java 如何将类用作泛型类型标记
我有我的方法:Java 如何将类用作泛型类型标记,java,Java,我有我的方法: myMethod(Class class){} 我想将MyClass与所有降序类一起传递给此方法,因此将其更改为: myMethod(Class<MyClass> class){} 然后我有一个编译器错误: The method myMethod(Class<MyClass>) in the type XXX is not applicable for the arguments (Class<MyOtherClassExtendingMyCla
myMethod(Class class){}
我想将MyClass与所有降序类一起传递给此方法,因此将其更改为:
myMethod(Class<MyClass> class){}
然后我有一个编译器错误:
The method myMethod(Class<MyClass>) in the type XXX is not applicable
for the arguments (Class<MyOtherClassExtendingMyClass>)
XXX类型中的方法myMethod(Class)不适用
用于参数(类)
如何确保仅允许MyClass及其所有降序类作为此方法的参数?使用上界通配符:
myMethod(Class<? extends MyClass>) {}
myMethod(Class根据您的问题,我认为您需要以下方法声明myMethod
:
myMethod(Class<? extends MyClass> clazz)
myMethod(类请编辑问题的标题:-)+1:如JLS中所述:
<T extends MyClass> void myMethod(Class<T> klass) {}
myMethod(Class<? extends MyClass> clazz)