我发现了一种类似于下面的方法。
public void simpleTest(Class <? extends ParentClass> myClass){
}
我不明白该表达:
Class <? extends ParentClass> myClass
在这里。有人可以解释吗?
最佳答案
Class <? extends ParentClass> myClass
是method argument,其类型是Class,即parameterized,以确保传递的是一个Class,该Class表示某种类型,它是ParentClass的subtype。
即给出:
class ParentParentClass {}
class ParentClass extends ParentParentClass {}
class ChildClass extends ParentClass {}
class ChildChildClass extends ChildClass {}
public void simpleTest(Class <? extends ParentClass> myClass) {}
这些是有效的:
simpleTest(ParentClass.class);
simpleTest(ChildClass.class);
simpleTest(ChildChildClass.class);
这些无效,因为参数未“适合”所需的类型:
simpleTest(ParentParentClass.class);
simpleTest(String.class);
simpleTest(Date.class);
simpleTest(Object.class);
关于java - 什么是Class <?扩展ParentClass>是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16778046/