Wpis z mikrobloga

@ptasznik69: Przy stosowaniu lambd tak. Trochę uciążliwe przy stosowaniu strumieni. Jednak można to obejść np. opakowując coś w tablicę:
final Object[] myObject = {new Object()};
Tablica jest immutable, ale już sam obiekt jest mutable.
@Patres: No i ma to sens: jak masz zmienną finalną, to możesz ją przekopiować do obiektu lambdy i po prostu działa (zresztą zobaczcie co się dzieje w skompilowanym kodzie, jak użyjecie lokalnej zmiennej finalnej w klasie anonimowej – tworzone jest pole i zmienna jest w nie kopiowana). Zmienna niefinalna musiałaby być jakąś referencją, ale do czego – na pewno nie do adresu na stosie, bo ten będzie nieprawidłowy po zakończeniu wykonywania