рдЬрд╛рд╡рд╛ 14 рдореЗрдВ рдкреИрдЯрд░реНрди рдореИрдЪрд┐рдВрдЧ рдПрдХ рдирдпрд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдлреАрдЪрд░ рд╣реИред

рдХрд╛ рдЙрджрд╛рд╣рд░рдг
рдЗрд╕ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЗрдВрд╕реНрдЯрд╛рдлреЙрдкрд░ рдСрдкрд░реЗрдЯрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ред рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рддреЛ рдЕрдЧрд▓реЗ рднрд╛рдЧ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рджреА рдЧрдИ рд╡рд╕реНрддреБ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдкреНрд░рдХрд╛рд░ рдХреА рд╣реИред рдЗрд╕ рдЪреЗрдХ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ рдпрд╛ рддреЛ рд╕рд╣реА рд╣реИ рдпрд╛ рдЧрд▓рдд рд╣реИ ред
if(animal instanceof Cat) {
} else {
}
true, . false.
instanceof
. Animal тАФ , : Cat Dog.
public String getAnimalSound(Animal animal) {
if(animal instanceof Cat) {
Cat cat = (Cat)animal;
return cat.meow();
} else if (animal instanceof Dog) {
Dog dog = (Dog)animal;
return dog.bark();
}
throw new UnknownAnimalException();
}
animal . animal Cat, , ┬л┬╗. Dog, . Animal, , :
- -, , animal , instanceof.
- Cat Dog.
- animal .
Cat Dog. .
, . . , , Cat Dog.
, Java 14 instanceof, JEP 305. , .
Java 14 .
if(animal instanceof Cat) {
Cat cat = (Cat)animal;
return cat.meow();
}
if(animal instanceof Cat cat) {
return cat.meow();
}
:
- cat, .
- . cat, Cat.
- cat if.
, , .
, if:
if(animal instanceof Cat cat) {
return cat.meow();
} else {
}
, if, , AND/OR.
if(animal instanceof Cat cat && cat.isAlive()) {
return cat.meow();
}
instanceof, &&, cat, Cat, Animal.
IDEA
, IntelliJ IDEA , 2020.1 ( Java 14, Records Switch).

!
, JDK 14.
instanceof Java 14. (Preview feature). ?
VM тАФ Java SE, , , . JDK ; , Java SE.
JDK , , Java SE , , . , ( ), ( ), .
JDK, . . , , , .
IntelliJ IDEA
IntelliJ IDEA File тЖТ Project Structure.

, , javac:
javac --release 14 --enable-preview ...
. --enable-preview
java --enable-preview ...
Maven
Maven :
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<release>14</release>
<compilerArgs>
--enable-preview
</compilerArgs>
```14</source>
<target>14</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>--enable-preview</argLine>
</configuration>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<argLine>--enable-preview</argLine>
</configuration>
</plugin>
</plugins>
</build>
Java 14
рд░рд┐рдХреЙрд░реНрдб
рдмрдврд╝рд╛рдпрд╛ рд╕реНрд╡рд┐рдЪ
рдкрд╛рда рдмреНрд▓реЙрдХ