例如,假设我有一个AbstractClass
,并且有一个名为FirstChildClass
和SecondChildClass
的AbstractClass
子类列表。而且我也有一个完整的IsolatedClass
。
现在假设下面的代码片段:
List<Class> classList = new ArrayList<>();
classList.add(FirstChildClass.class); // this is ok
classList.add(SecondChildClass.class); // this is ok
classList.add(IsolatedClass.class); // this should not be ok
简单地说,我希望第三行出现错误。在Java中有没有实现这一点的方法?
发布于 2018-06-04 20:35:11
如果您将列表声明为
List<Class<? extends AbstractClass>> classList = new ArrayList<>();
那么它只能包含扩展AbstractClass
的类。
发布于 2018-06-04 20:37:07
我想“有界通配符”就是你要找的。你可以这样使用它:
List<? extends AbstractClass> mylist = new ArrayList<>();
这样,列表只能包含从AbstractClass继承的项。接口也是如此。
https://stackoverflow.com/questions/50680712
复制相似问题