java - 在泛型类中使用 ArrayList 实现集合

标签 java generics arraylist set

我正在尝试使用 arrayList 实现一个集合,我想创建 2 个构造函数。一个空的 1 和一个获取数组并将其相加的值:

        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
        }

我在第二个构造函数中遇到错误:

"The method add(E) at the type set is not applicable for arguments (E)"

最佳答案

您需要删除 <E>在构造函数声明中:

    public <E> set(E[] inputArray){
           ^^^ Get rid of this

就目前情况而言,您正在创建第二个不相关的泛型类型参数,名为 E遮盖Eset<E> .

关于java - 在泛型类中使用 ArrayList 实现集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20805233/

相关文章:

java - 基于文件夹 "values"的 Android 本地化

Java 泛型 : How to avoid a mess in class header

java - 在java中打印文本文件中的输出

java - 可迭代到 ArrayList 元素更改

java - 获取List的Arraylist中与Arraylist匹配的数据

java - 无法使用 `debugImplementation ' androidx.fragment :fragment-testing :'+fragment_version` as a dependency 运行应用程序

java - Java 1.7 是否使用不同的字符编码?

java - Spring Data JPA 仅在创建之前在数据库端生成 id

java - 在不破坏构建的情况下将泛型引入 Java 代码

java - 是否可以从 Java 中的对象构造函数中删除泛型类型参数?