Я повторяю список массивов в цикле Java 7 и Java 8 forEach
. Ядро Java 8 требует, чтобы переменная внутри цикла была окончательной. Например,
List<String> testList = Arrays.asList( "apple", "banana", "cat", "dog" );
int count = 0;
testList.forEach( test -> {
count++; // compilation Error : Local variable count defined in an enclosing scope must be final or effectively final
});
for( String test: testList ) {
count++; // No Error
}
Может кто-нибудь объяснить, почему это так? Это недостаток Java 8?