Pattern Matching est une nouvelle fonctionnalité d'aperçu dans Java 14.

exemple de
Pour mieux comprendre cette nouvelle fonctionnalité, voyons comment fonctionne l'opérateur instanceof . Si vous le connaissez déjà, n'hésitez pas à passer à la section suivante.
En bref, il vérifie si un objet donné appartient à un type donné. À la suite de cette vérification, il renvoie vrai ou faux .
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
Enregistrement de blocs de texte de
commutateur améliorés