我发现了一个类似下面的方法.
public void simpleTest(Class <? extends ParentClass> myClass){
}
Run Code Online (Sandbox Code Playgroud)
我不明白这个表达:Class <? extends ParentClass> myClass这里.
有人能解释一下吗?
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)
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |