[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-11-25-var-v-lyambda-vyrazheniyakh-java-11":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},399,"var-v-lyambda-vyrazheniyakh-java-11",11,"java-11-25","Java 11–25","🆕","Var в лямбда-выражениях (Java 11)","В Java 11 `var` разрешён в параметрах лямбда-выражений. Основная цель — возможность добавлять аннотации к лямбда-параметрам, что без `var` невозможно.\n\n```java\n\u002F\u002F Java 10 — var для локальных переменных\nvar list = new ArrayList\u003CString>(); \u002F\u002F тип выведен: ArrayList\u003CString>\nvar stream = list.stream();         \u002F\u002F тип выведен: Stream\u003CString>\n\n\u002F\u002F Java 11 — var в лямбда-параметрах\n\u002F\u002F Без var (и так работает):\nlist.stream()\n    .filter(s -> s.length() > 3)\n    .toList();\n\n\u002F\u002F С var — позволяет добавлять аннотации:\nlist.stream()\n    .filter((@NotNull var s) -> s.length() > 3)\n    .toList();\n\n\u002F\u002F Все параметры должны быть или с var, или без:\n\u002F\u002F (var x, y) -> ошибка компиляции\n\u002F\u002F (var x, var y) -> OK\n```\n\n### Частые ошибки\n\n- Злоупотребление `var` — `var result = process()` непонятно; используйте `var` когда тип очевиден из правой части\n- `var` для полей класса — не поддерживается; `var` только для локальных переменных и лямбда-параметров\n- Смешивание `var` и явных типов в лямбде — `(var x, String y)` приводит к ошибке компиляции\n\n### Как используется в 2026\n\n- `var` широко используется для локальных переменных, особенно с дженериками\n- Стандарты кодирования: `var` допустим, когда тип очевиден; явный тип — когда нет\n- IntelliJ IDEA подсвечивает выведенный тип при наведении\n\n> **На собеседовании:** важно сказать, что `var` — не ключевое слово, а зарезервированное имя типа. Главная мотивация для `var` в лямбдах — аннотации (`@NonNull`, `@Nullable`). Частая ошибка — считать, что `var` делает Java динамически типизированной.","","junior",[15],"java-modern",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":20,"featuredSnippetReady":23},"Var в лямбда-выражениях (Java 11) — Gymterview","В Java 11 `var` разрешён в параметрах лямбда-выражений. Основная цель — возможность добавлять аннотации к лямбда-параметрам, что без `var` невозможно.","В Java 11 `var` разрешён в параметрах лямбда-выражений. Основная цель — возможность добавлять аннотации к лямбда-парамет",[15,13],true]