Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по стримам / 6 сообщений из 6, страница 1 из 1
24.07.2017, 21:43
    #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
24.07.2017, 23:11
    #39494266
vas0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по стримам
variable used in lambda expression should be final or effectively final
...
Рейтинг: 0 / 0
25.07.2017, 00:31
    #39494290
rabiter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по стримам
vas0variable used in lambda expression should be final or effectively final

Читать и я умею. Но почему? Я понимаю в самом стриме переменная долджна быть final или effectively final, потому что стрим может бать распараллелен, потокобезопасность, все дела. Но когда стрим выполнен, зачем продолжать требовать то, чтобы переменная оставалась final?
...
Рейтинг: 0 / 0
25.07.2017, 02:06
    #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
25.07.2017, 07:05
    #39494315
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по стримам
rabiter
Читать и я умею. Но почему? Я понимаю в самом стриме переменная долджна быть final или effectively final, потому что стрим может бать распараллелен, потокобезопасность, все дела. Но когда стрим выполнен, зачем продолжать требовать то, чтобы переменная оставалась final?
Переменная либо final, либо нет. Это не кот Шрёдингера. Потокобезопасность тут вообще не при чем. Анонимных классов никогда не видел?
...
Рейтинг: 0 / 0
25.07.2017, 11:14
    #39494443
rabiter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по стримам
Usman, Blazkowicz, спасибо!
Все новое - хорошо забытое старое.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по стримам / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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