Intro Local Variable Out Defined In An Enclosing Scope Must Be Final Or Effectively Final

Intro Local Variable Out Defined In An Enclosing Scope Must Be Final Or Effectively Final

這篇介紹Local Variable Out Defined In An Enclosing Scope Must Be Final Or Effectively Final。

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
在stream().forEach()方法內使用一個外部的參數時,會出現以下
Local variable out defined in an enclosing scope must be final or effectively final 錯誤訊息。

list.stream().forEach(x -> {
try {
gen(out);
} catch (Exception e) {
}
});

在gen(out); 這行會出現以上錯誤訊息。

解決方法為
final JspWriter out1 = out;
list.stream().forEach(x -> {
try {
gen(out1);
} catch (Exception e) {
}
});