Рассмотрим код (не компилируемый):Поддерживает ли java 8 локальные переменные лямбда?
List<String> list = Arrays.asList("a", "b");
list.stream().map(s ->
String variable = method(s)
variable + "debug"
);
private String method(String s) {
return s;
}
Line String variable = method(s)
не компилируется.
Могу ли я определить локальную переменную внутри лямбда-выражение или запрещено по дизайну?
судя по 'debug', вы не хотите' peek() '? – epoch
Взгляните на раздел [JLS 15.27.2] (https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.27.2), определяющий лямбда-тела. – Tunaki
Какая ошибка вы получаете? Почему вы думаете, что у вас нет локальных переменных? –