Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java集合通配符_Java_Generics - Fatal编程技术网

Java集合通配符

Java集合通配符,java,generics,Java,Generics,我试图定义一个列表对象,然后使用下面的代码向其中添加对象: List<? extends File> newFiles = new ArrayList<? extends File>(); List您不能直接实例化通配符类型。在这种情况下,这将是?扩展文件 您只需使用文件,因为扩展意味着一种上限关系(您可以保证该集合中的元素至少是文件) list因为不能实例化通配符类型,只能实例化对它的引用。请不要养成将类命名为Java API中常用类的习惯。谢谢@Makato。通配符

我试图定义一个列表对象,然后使用下面的代码向其中添加对象:

List<? extends File> newFiles = new ArrayList<? extends File>();

List您不能直接实例化通配符类型。在这种情况下,这将是
?扩展文件

您只需使用
文件
,因为
扩展
意味着一种上限关系(您可以保证该集合中的元素至少是
文件


list因为不能实例化通配符类型,只能实例化对它的引用。请不要养成将类命名为Java API中常用类的习惯。谢谢@Makato。通配符是API方法的一部分。谢谢您的回复。
List<? extends File> newFiles = new ArrayList<File>()
List<? extends File> newFiles = new ArrayList<File>();
List<? extends File> newFiles = new ArrayList<>();