什么类<?扩展ParentClass>是什么意思?

Ani*_*nik 0 java

我发现了一个类似下面的方法.

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

}
Run Code Online (Sandbox Code Playgroud)

我不明白这个表达:Class <? extends ParentClass> myClass这里.

有人能解释一下吗?

Rya*_*art 5

Class <? extends ParentClass> myClass是一个方法参数,其类型是一个参数化Class,以确保传递的是一个Class,它表示某种类型是ParentClass 的子类型.

即给出:

class ParentParentClass {}
class ParentClass extends ParentParentClass {}
class ChildClass extends ParentClass {}
class ChildChildClass extends ChildClass {}

public void simpleTest(Class <? extends ParentClass> myClass) {}
Run Code Online (Sandbox Code Playgroud)

这些是有效的:

simpleTest(ParentClass.class);
simpleTest(ChildClass.class);
simpleTest(ChildChildClass.class);
Run Code Online (Sandbox Code Playgroud)

这些无效,因为参数不适合所需类型:

simpleTest(ParentParentClass.class);
simpleTest(String.class);
simpleTest(Date.class);
simpleTest(Object.class);
Run Code Online (Sandbox Code Playgroud)