首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何限制类列表只包含类的子类(可能是抽象类)

如何限制类列表只包含类的子类(可能是抽象类)
EN

Stack Overflow用户
提问于 2018-06-04 20:32:02
回答 2查看 44关注 0票数 0

例如,假设我有一个AbstractClass,并且有一个名为FirstChildClassSecondChildClassAbstractClass子类列表。而且我也有一个完整的IsolatedClass

现在假设下面的代码片段:

代码语言:javascript
复制
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中有没有实现这一点的方法?

EN

回答 2

Stack Overflow用户

发布于 2018-06-04 20:35:11

如果您将列表声明为

代码语言:javascript
复制
List<Class<? extends AbstractClass>> classList = new ArrayList<>();

那么它只能包含扩展AbstractClass的类。

票数 3
EN

Stack Overflow用户

发布于 2018-06-04 20:37:07

我想“有界通配符”就是你要找的。你可以这样使用它:

代码语言:javascript
复制
List<? extends AbstractClass> mylist = new ArrayList<>();

这样,列表只能包含从AbstractClass继承的项。接口也是如此。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50680712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档