Java数组和泛型:与C#IEnumerable等效的Java


问题内容

因此,在C#中,我可以将a string[]视为IEnumerable<string>

是否有Java等效项?


问题答案:

Iterable<String>等于IEnumerable<string>

如果实现数组,在类型系统中将是一个奇怪的现象IterableString[]是的实例Object[],但Iterable<String>不是Iterable<Object>。类和接口不能乘以不同的通用参数来实现相同的通用接口。

String[]将像Iterable增强的for循环中的一样工作。

String[]可以很容易地变成Iterable

Iterable<String> strs = java.util.Arrays.asList(strArray);

优先于数组而不是集合(对于非基本类型而言)。引用类型的数组有点奇怪,自Java 1.5开始很少使用。