[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-11-25-primitive-types-in-patterns-i-instanceof":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},418,"primitive-types-in-patterns-i-instanceof",11,"java-11-25","Java 11–25","🆕","Primitive Types in Patterns и instanceof","Primitive Types in Patterns (финализировано в Java 25) расширяют pattern matching на примитивные типы, проверяя безопасность преобразования (narrowing) без потери данных.\n\n```java\n\u002F\u002F Примитивы в instanceof\nObject obj = 42;\nif (obj instanceof int i) {\n    System.out.println(\"int value: \" + i);\n}\n\n\u002F\u002F Примитивы в switch\nstatic String classify(Object obj) {\n    return switch (obj) {\n        case int i when i > 0    -> \"positive int: \" + i;\n        case int i               -> \"non-positive int: \" + i;\n        case long l              -> \"long: \" + l;\n        case double d            -> \"double: \" + d;\n        case String s            -> \"string: \" + s;\n        default                  -> \"other\";\n    };\n}\n\n\u002F\u002F Безопасные преобразования (narrowing) без потери данных\nlong value = 42L;\nif (value instanceof int i) { \u002F\u002F true — 42 помещается в int\n    System.out.println(\"fits in int: \" + i);\n}\n\nlong big = Long.MAX_VALUE;\nif (big instanceof int i) { \u002F\u002F false — не помещается\n    \u002F\u002F не выполнится\n}\n```\n\n### Частые ошибки\n\n- Ожидать автоматический narrowing cast — `long instanceof int` проверяет допустимость, а не выполняет приведение; значение должно быть в диапазоне int\n\n### Как используется в 2026\n\n- Упрощает обработку числовых типов в generic-коде\n- Дополняет картину полного pattern matching для всех типов Java\n\n> **На собеседовании:** ключевой момент — `instanceof` для примитивов проверяет, помещается ли значение без потери данных, а не просто приводит тип. Покажите пример с `long instanceof int` для 42L (true) и Long.MAX_VALUE (false).","","middle",[15],"java-modern",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Primitive Types in Patterns и instanceof — Gymterview","Primitive Types in Patterns (финализировано в Java 25) расширяют pattern matching на примитивные типы, проверяя безопасность преобразования (narrowing) без поте","Primitive Types in Patterns (финализировано в Java 25) расширяют pattern matching на примитивные типы, проверяя безопасн",[15,13],"Primitive Types in Patterns (финализировано в Java 25) расширяют pattern matching на примитивные типы, проверяя безопасность преобразования (narrowing) без потери данных.",true]