powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по стримам
6 сообщений из 6, страница 1 из 1
Вопрос по стримам
    #39494240
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый вечер друзья!

Не возьму в толк почему так:
Код: java
1.
2.
3.
4.
5.
public void method() {
int t = 2;
Streams.of(0,4).forEach(e -> e + t).....
t++; // почему я не могу менять t после стрима?
}
...
Рейтинг: 0 / 0
Вопрос по стримам
    #39494266
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
variable used in lambda expression should be final or effectively final
...
Рейтинг: 0 / 0
Вопрос по стримам
    #39494290
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0variable used in lambda expression should be final or effectively final

Читать и я умею. Но почему? Я понимаю в самом стриме переменная долджна быть final или effectively final, потому что стрим может бать распараллелен, потокобезопасность, все дела. Но когда стрим выполнен, зачем продолжать требовать то, чтобы переменная оставалась final?
...
Рейтинг: 0 / 0
Вопрос по стримам
    #39494298
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter,

Why are only final variables accessible in anonymous class?

Завернуть в класс-оболочку, который примет удар " final " на себя:
Код: java
1.
2.
3.
4.
5.
import org.apache.commons.lang3.mutable.MutableInt;
...
MutableInt t = new MutableInt(2);
Stream.of(0,4).map(e -> e + t.getValue()).forEach(System.out::println);
t.increment();
...
Рейтинг: 0 / 0
Вопрос по стримам
    #39494315
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
Читать и я умею. Но почему? Я понимаю в самом стриме переменная долджна быть final или effectively final, потому что стрим может бать распараллелен, потокобезопасность, все дела. Но когда стрим выполнен, зачем продолжать требовать то, чтобы переменная оставалась final?
Переменная либо final, либо нет. Это не кот Шрёдингера. Потокобезопасность тут вообще не при чем. Анонимных классов никогда не видел?
...
Рейтинг: 0 / 0
Вопрос по стримам
    #39494443
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman, Blazkowicz, спасибо!
Все новое - хорошо забытое старое.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по стримам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]