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<>();