首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java集合外观

java集合外观
EN

Stack Overflow用户
提问于 2014-05-01 07:11:32
回答 4查看 643关注 0票数 3

我需要创建一个采用TreeSet或HashSet的外观。它的构造函数必须如下所示:

代码语言:javascript
复制
CollectionFacadeSet(java.util.Collection<java.lang.String> collection)

我导入java集合并使用以下行:

代码语言:javascript
复制
Collections <String> collection = new Collections<>();

但是,java不接受它,我得到了一个错误:

  • 类型集合不是泛型的;它不能用参数进行参数化。
    • 类型集合不是泛型的;它不能用参数<>进行参数化。

有什么解决办法吗?

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2014-05-01 07:15:40

java.util.Collections (注意复数形式)是一个助手类,具有许多静态方法来操作Collections,java.util.Collection (单数)是所有JDK内置集合(Lists、Sets等)的基类。

博士-你输入错类了。

请注意,java.util.Collection是一个abstract类,您将无法实例化它。

票数 7
EN

Stack Overflow用户

发布于 2014-05-01 07:18:45

尽管变量可以是Collection,但它所引用的对象必须是具体类型;不能实例化Collection (或尝试执行的集合)。

试着做这样的事情:

代码语言:javascript
复制
Collection<String> c = new ArrayList<>();

但如果你需要一套,就用一套:

代码语言:javascript
复制
Set<String> set = new HashSet<>();
票数 2
EN

Stack Overflow用户

发布于 2017-06-20 11:52:26

首先,您使用的是java.util.Collections类,它不是泛型类,因此不能将其参数化为字符串type.you,而应该使用java.util.Collection。

其次,由于Collection是一个接口,所以必须使其实现类的对象。

你可以用-

代码语言:javascript
复制
Collection <String> collection = new ArrayList<String>();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23403575

复制
相关文章

相似问题

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