Java数组和列表的共同祖先

Phư*_*yễn 17 java enumerable

在.NET中,数组和列表都具有Enumerable作为祖先,因此接受Enumerable作为参数的方法可以接收数组和列表作为其参数.我想知道Java中是否有类似的东西?

Jon*_*eet 22

不,Java中没有相应的东西.我通常建议您设计API方法来接收List<T>,Collection<T>Iterable<T>.虽然这些排除了直接使用数组调用方法,但您可以非常轻松地使用包装数组Arrays.asList.对于调用者而言,这比将数组指定为方法参数更加灵活,这会强制执行单个实现.

我同意这并不理想.

请注意,在.NET中,一维数组不仅仅实现IEnumerable<T>- 它们也实现IList<T>.