Java数组和泛型:与C#IEnumerable等效的Java
问题内容:
因此,在C#中,我可以将a string[]
视为IEnumerable<string>
。
是否有Java等效项?
问题答案:
Iterable<String>
等于IEnumerable<string>
。
如果实现数组,在类型系统中将是一个奇怪的现象Iterable
。String[]
是的实例Object[]
,但Iterable<String>
不是Iterable<Object>
。类和接口不能乘以不同的通用参数来实现相同的通用接口。
String[]
将像Iterable
增强的for循环中的一样工作。
String[]
可以很容易地变成Iterable
:
Iterable<String> strs = java.util.Arrays.asList(strArray);
优先于数组而不是集合(对于非基本类型而言)。引用类型的数组有点奇怪,自Java 1.5开始很少使用。