Java问号类型集合遍历方法详解 - 上界通配符和下界通配符
在Java中,问号类型(Wildcard Type)通常用来表示不确定的类型参数。问号类型可以分为上界通配符(? extends T)和下界通配符(? super T)。\n\n对于上界通配符(? extends T),可以使用通配符上界限定为某个特定的类型,例如List<? extends Number>表示一个可以存储任何Number或其子类的列表。在遍历时,我们可以使用通配符上界的类型来接收元素,如下所示:\n\n\nList<? extends Number> list = new ArrayList<>();\n// 添加元素\nlist.add(10);\nlist.add(3.14);\n// 遍历\nfor (? extends Number number : list) {\n System.out.println(number);\n}\n\n\n对于下界通配符(? super T),可以使用通配符下界限定为某个特定的类型,例如List<? super Integer>表示一个可以存储任何Integer或其父类的列表。在遍历时,我们需要使用Object类型来接收元素,并进行类型转换,如下所示:\n\n\nList<? super Integer> list = new ArrayList<>();\n// 添加元素\nlist.add(10);\nlist.add(20);\n// 遍历\nfor (Object obj : list) {\n Integer number = (Integer) obj;\n System.out.println(number);\n}\n\n\n需要注意的是,在遍历问号类型的集合时,由于不确定具体的类型参数,我们只能将元素视为Object类型处理。如果需要具体的类型操作,需要进行相应的类型转换。
原文地址: https://www.cveoy.top/t/topic/qttf 著作权归作者所有。请勿转载和采集!