我发现了一种类似于下面的方法。

public void simpleTest(Class <? extends ParentClass> myClass){

}


我不明白该表达:Class <? extends ParentClass> myClass在这里。

有人可以解释吗?

最佳答案

Class <? extends ParentClass> myClassmethod 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/

10-12 07:25