--- aliases: tags: - maturity/🌱 - type/opinion date: 2024-09-06 zero-link: - "[[../garden/ru/meta/zero/00 Java Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°|00 Java Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°]]" parents: linked: --- Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Java ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ подстановочный Π·Π½Π°ΠΊ (`*`) Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ…Β `import` для добавлСния всСх классов ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Но Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π΅Π²ΡŒΡŽ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· вас, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, просили ΡƒΠ±Ρ€Π°Ρ‚ΡŒ этот подстановочный Π·Π½Π°ΠΊ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя класса. РазбСрСмся ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°ΠΊ подстановки? Но ΠΏΡ€Π΅ΠΆΠ΄Π΅, Π΄Π°Π²Π°ΠΉΡ‚Π΅ вспомним, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя класса, ΠΏΠΎΠΌΠΈΠΌΠΎ названия, содСрТит Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:Β `java.util.List`.Β ==Вакая запись позволяСт Π½Π°ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ классы с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ….== ```java package com.example; public class WithoutImport { public static void main(String[] args) { java.util.List myList = new java.util.ArrayList(); } } ``` Однако, полная запись вСсьма Π½Π΅ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Π°, поэтому Π² Java сущСствуСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° – `import`. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ компилятору источник ΠΈΠΌΠ΅Π½ классов, статичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ статичСских ΠΈΠΌΠ΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΊΠΎΠ΄Π΅. Один Ρ€Π°Π· написали ΠΏΠΎΠ»Π½ΠΎΠ΅ имя класса, Π° дальшС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ класса. ```java package com.example; import java.util.ArrayList; import java.util.List; public class WithImport { public static void main(String[] args) { List myList = new ArrayList(); } } ``` Если ΠΌΡ‹ скомпилируСм ΠΈ запустим эти ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ. Π˜ΠΌΠΏΠΎΡ€Ρ‚ с подстановочными Π·Π½Π°ΠΊΠ°ΠΌΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ компилятору ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° классов Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΈ использовании ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° с wildcard ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎ врСмя компиляции ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒΡΡ. Но Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв это Π½Π΅ ΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠ³ΠΎ влияния. Π’ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ компилятора, ΠΈ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ ΠΈΡ… Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΡΠ½ΠΈΡ‚ΡŒ это, ΠΌΡ‹ напишСм ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ с подстановочными Π·Π½Π°ΠΊΠ°ΠΌΠΈ. ```java package com.example; import java.util.*; public class WithWildCard { public static void main(String[] args) { List myList = new ArrayList(); } } ``` Если ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ этого класса, Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ```bytecode Compiled from "WithWildCard.java" public class com.example.WithWildCard { public com.example.WithWildCard(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object."":()V 4: return public static void main(java.lang.String[]); Code: 0: new #2 // class java/util/ArrayList 3: dup 4: invokespecial #3 // Method java/util/ArrayList."":()V 7: astore_1 8: return } ``` Если ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Π° ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄. Π’ΠΎ врСмя выполнСния Java ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, Π° Π½Π΅ исходный ΠΊΠΎΠ΄.Β ==Π’ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π΅ Π½Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°.== Из этого ясно слСдуСт, Ρ‡Ρ‚ΠΎ использованиС ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° с подстановочными Π·Π½Π°ΠΊΠ°ΠΌΠΈ Π½Π΅ влияСт Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Java-прилоТСния Π²ΠΎ врСмя выполнСния. ## НСдостатки Π’Π°ΠΊ Ссли использованиС подстановочного Π·Π½Π°ΠΊΠ° Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π΅Π³ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ? ### ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅Π½ Бамая ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ имСнования. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° класса ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΒ `org.test.Parser`Β ΠΈΒ `dev.lib.Parser`. Π’ нашСм ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ с wildcard: ```java import org.test.* import dev.lib.* ``` ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΡ‚Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ классов с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π² Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ Π±ΡƒΒ­Π΄Π΅Ρ‚ прСдпринята ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· этих классов. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π²Π΅Ρ€ΡΠΈΡŽ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Допустим Ρƒ нас Π±Ρ‹Π»Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° с классом `org.test.Parser`, Π° ΠΏΠΎΡ‚ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚ΠΎΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» класс `dev.lib.Parser`, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊ имСнования Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, хотя Ρ€Π°Π½ΡŒΡˆΠ΅ всС Π±Ρ‹Π»ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ. ### Чистый ΠΊΠΎΠ΄ Π˜ΠΌΠΏΠΎΡ€Ρ‚Ρ‹ с подстановочными Π·Π½Π°ΠΊΠ°ΠΌΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π½Π°ΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ списка ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ². Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, это влияСт Π½Π° Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ страниц Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ исходного ΠΊΠΎΠ΄Π°, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½ добСрСтся Π΄ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π»ΠΎΠ³ΠΈΠΊΡƒ. НСсомнСнно, Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ - это Ρ‚Π°ΠΊΠΆΠ΅ чистый ΠΊΠΎΠ΄. Π­Ρ‚Π° идСя Ρ‚Π°ΠΊΠΆΠ΅ поддСрТиваСтся Π² ΠΊΠ½ΠΈΠ³Π΅ "Чистый ΠΊΠΎΠ΄" Π ΠΎΠ±Π΅Ρ€Ρ‚Π° К. ΠœΠ°Ρ€Ρ‚ΠΈΠ½Π°. ЀактичСски, ΠΊΠ½ΠΈΠ³Π° Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹ с подстановочными Π·Π½Π°ΠΊΠ°ΠΌΠΈ ΠΏΡ€ΠΈ использовании Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… классов ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ источника. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ классов, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСсь ΠΏΠ°ΠΊΠ΅Ρ‚. Однако, я Π½Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽ это ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ IntelliJ IDEA автоматичСски скрываСт всС строки ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ². ![](../../meta/files/images/Pasted%20image%2020240906164456.png) Π’Π°ΠΊΠΆΠ΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΡƒΡ…ΡƒΠ΄ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ прСдставлСния ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΏΡƒΡ‚ΠΈ классов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΊΠΎΠ΄Π΅. Однако, это Ρ‚ΠΎΠΆΠ΅ Π½Π΅ являСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. Достаточно удСрТивая Ctrl (cmd) навСсти курсор Π½Π° класс ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ этот класс размСщаСтся. ![](../../meta/files/images/Pasted%20image%2020240906164524.png) Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ "чистого ΠΊΠΎΠ΄Π°" Π±ΠΎΠ»Π΅Π΅ Π½Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹. ## Настройки Π² Idea Intellij Idea автоматичСски сворачиваСт ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π΄ΠΎΡΡ‚ΠΈΠ³Π°ΡŽΡ‚ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ количСства. Π­Ρ‚Π° опция настраиваСтся Π² Ρ€Π°Π΄Π΅Π»Π΅ Preferences > Editor > Code Style > Java Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ imports. ![](../../meta/files/images/Pasted%20image%2020240906164551.png) Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ автоматичСскоС сворачиваниС ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ² достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ число 999. Π’ΠΎΡ‚ ΠΈ всС, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Idea Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΡΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹. ## Π Π΅Π·ΡŽΠΌΠΈΡ€ΡƒΡŽ ИспользованиС подстановочных ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ² Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ повлияСт Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²ΠΎ врСмя выполнСния, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎ врСмя компиляции. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° ΠΈΠΌΠ΅Π½. Шанс этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π΅ Π²Π΅Π»ΠΈΠΊ, Π½ΠΎ ΠΈ Π½Π΅ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ. Π§Ρ‚ΠΎ касаСтся "чистого ΠΊΠΎΠ΄Π°", Ρ‚ΠΎ с использованиСм соврСмСнных IDE эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ являСтся Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ.