Luk*_*awa 1 java generics covariance
我希望有一个特定子类的Class'es集合来实现这样的事情:
public class Test {
private class Parent {}
private class Child1 extends Parent{}
private class Child2 extends Parent{}
List<Class<Parent>> classes = new ArrayList();
public Test() {
classes.add(Child1.class);
}
public static void main(String[] args) {
new Test();
}
}
Run Code Online (Sandbox Code Playgroud)
如何在不扰乱编译器的情况下实现上述目的?
fab*_*ian 10
使用
List<Class<? extends Parent>> classes = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
这个
List<Class<Parent>> classes = new ArrayList();
Run Code Online (Sandbox Code Playgroud)
"扰乱"编译器,因为它要求列表的元素是类型Class<Parent>.但是Child1.class是类型Class<Child1>.请注意,Class<Child1>并没有延长Class<Parent>.
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |