[英]Implementation of a set using ArrayList in a generic class
我试图使用arrayList实现一个集合,我想做2个构造函数。 一个空的和一个得到一个数组并将其添加的数组:
public class set<E> {
Set <E> setList;
ArrayList<E> elementList;
public set(){
setList = (Set<E>) new ArrayList();
}
public <E> set(E[] inputArray){
super();
for(E element: inputArray) // not working
setList.add( element);
// setList.addAll(Arrays.asList(inputArray)); - not working either
}
我在第二个构造函数时遇到错误:
“类型集中的方法add(E)不适用于参数(E)”
您需要在构造函数声明中删除<E>
:
public <E> set(E[] inputArray){
^^^ Get rid of this
照现状,您正在创建另一个不相关的泛型类型参数E
,该参数在set<E>
中遮盖了E
将方法set(E[])
更改如下:
public Set(E[] inputArray) {
super();
for(E element: inputArray) {
setList.add(element);
}
}
原因:
类型
E
已经是使用Set<E>
创建的通用类型,因此,您不需要在构造函数中重新定义E
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.