java - 泛型代码删除不起作用

标签 java generics

我想在 Java 中测试一些关于泛型的东西,所以我写了一个使用泛型的方法,它接受一个列表并删除所有其他元素。我写了这个方法,但它给出了 UnsupportedOperationException 错误。这里有什么问题?

    Integer[] strArray = new Integer[] {1, 2, 3, 4, 5}; 
    List<Integer> numbers = Arrays.asList(strArray);
    removeOdd(numbers);
    for (Object o : numbers){
         System.out.println( o );
    }
}
        public static <T> void removeOdd ( List<T> list){
            Iterator<T> itr = list.iterator();
            int i = 0;

                while(itr.hasNext())
                {
                    itr.next();
                    i++;
                    if(i % 2 ==1){
                        itr.remove();
                    }
                }   

最佳答案

Arrays.asList(T...)创建一个固定大小的列表。您可以替换元素,但不能添加或删除任何元素。

关于java - 泛型代码删除不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16268493/

相关文章:

ios - swift 。如何从扩展中获取泛型?

javascript - 使用 JSDoc 注释通用 ES6 类

scala - 如何将类型限制为 Scala 中的特定类型

java - 将图像添加到 ArrayList<BufferedImage> 时出现 Nullpointerexception

java - 将应用程序从jetty服务器迁移到wildfly 10服务器

java - 为什么日期时间的毫秒数 1-1-1970 00 :00:00 is in negative?

java - 带数组的 if 语句的空指针异常

java - 使用线程时是否必须使用静态变量?

c# - 返回 IList<IList<T>>

c# - 报告类型参数错误的最佳实践?