我遇到了一些以前从未见过的Java语法。我想知道是否有人可以告诉我这是怎么回事。
for (ObjectType objectName : collectionName.getObjects())
最佳答案
它被称为 for-每种或增强的for
语句。 请参阅the JLS §14.14.2。
编译器提供的 syntactic sugar 用于迭代 Iterable
和数组。以下是迭代列表的等效方法:
List<Foo> foos = ...;
for (Foo foo : foos)
{
foo.bar();
}
// equivalent to:
List<Foo> foos = ...;
for (Iterator<Foo> iter = foos.iterator(); iter.hasNext();)
{
Foo foo = iter.next();
foo.bar();
}
这是两种遍历数组的等效方法:
int[] nums = ...;
for (int num : nums)
{
System.out.println(num);
}
// equivalent to:
int[] nums = ...;
for (int i=0; i<nums.length; i++)
{
int num = nums[i];
System.out.println(num);
}
进一步阅读