java - 通用列表打印方法

标签 java list generics

我正在尝试编写一个适用于所有实现“可迭代”接口(interface)的类的通用打印方法

public class List<T> {

    public static <T extends Iterable<T>> void print(T[] list){
        for (Object element : list){
            System.out.println(element);
        }
    }
    public static void main(String[] args){
        ArrayList<Integer> l = new ArrayList();
        l.add(1);
        l.add(5);
        l.add(3);
        l.add(2);
        print(l);
    }
}

但我收到错误消息“类型列表中的方法 print(T[]) 不适用于参数 (ArrayList)”

最佳答案

您的参数是T[] .这是一个扩展 Iterable 类型的数组.你只需要 T .但是您还需要一个类型变量作为 Iterable 中的类型参数。 .你需要

public static <T extends Iterable<E>, E> void print(T list) {

你需要这个是因为你不想要 Iterable<ArrayList>这就是您当前实现中的内容。

关于java - 通用列表打印方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20957487/

相关文章:

java - Spring Mybatis 多态

java - 通过保留/创建 Activity 堆栈重定向到 Activity

Java:使用递归返回自制堆栈大小

list - haskell 递增对的无限列表

java - 如何在 IDEA 中构建 .war 文件以部署到 Liferay?

performance - 使用 Java 8 查找连续子列表的负和

C++ 列表不工作

java - 如何将字符串转换为整数?

java - 重载和覆盖泛型方法 - java

java - 避免在泛型层次结构中进行强制转换