Коли я повторюю колекцію, використовуючи новий синтаксичний цукор Java 8, наприклад
myStream.forEach(item -> {
// do something useful
});
Хіба це не еквівалент фрагменту "старого синтаксису" нижче?
myStream.forEach(new Consumer<Item>() {
@Override
public void accept(Item item) {
// do something useful
}
});
Чи означає це, що новий анонімний Consumer
об’єкт створюється на купі кожного разу, коли я повторюю колекцію? Скільки місця займає купа? Які наслідки це має? Чи означає це, що я повинен використовувати старий стиль для циклів під час ітерації над великими багаторівневими структурами даних?