首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确保java中的集合只包含一种类型?

如何确保java中的集合只包含一种类型?
EN

Stack Overflow用户
提问于 2013-09-04 10:04:03
回答 4查看 286关注 0票数 3

我想确保集合只能容纳一种类型。

让我们说有这样一种方法。

代码语言:javascript
复制
public Collection<Students> getStudents();

我们可以编写以下代码。

代码语言:javascript
复制
Collection students = getStudents();
students.add(new Book());

Book不扩展Student。现在,集合学生包含一个错误的对象。如何确保这行Collection students = getStudents();是不可能的?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-04 10:17:20

如果每次实例化集合时都使用Collections.checkedCollection(),则可以在运行时强制执行它。诚然,这会有点痛苦。:)

票数 7
EN

Stack Overflow用户

发布于 2013-09-04 10:08:46

这叫做http://www.angelikalanger.com/GenericsFAQ/FAQSections/ParameterizedTypes.html#Raw%20Types。原始类型是为了向后兼容性而引入的,因此旧代码基本上仍然适用于较新的JDK。

您可以对使用javac的原始类型发出-Xlint:rawtypes警告,在IDE中,您可能会使它成为一个实际的错误,但它仍然是基本有效的-Xlint:rawtypes

票数 13
EN

Stack Overflow用户

发布于 2013-09-04 10:18:41

乔恩·斯基特做出了正确的回答。如果使用原始类型,可以在Properties (或Properties)上定义Java编译器以获得错误。

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

https://stackoverflow.com/questions/18610919

复制
相关文章

相似问题

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