Sortie de Java 14

Par:
fredericmazue

jeu, 19/03/2020 - 15:38

Oracle vient d'annoncer la disponibilité générale de Java 14. Java 14 vient avec de nombreuses nouvelles fonctionnalités. Oracle en met trois en avant plus particulièrement : la correspondance de motifs (Pattern Matching) pour instanceof (JEP 305), les Records (JEP 359), et les blocs de texte (JEP 368).

La correspondance de motifs pour instanceof (JEP 305) permettra aux développeurs d'écrire un code beaucoup moins lourd et plus lisible, notamment en l'allégeant de constructions if/else fastidieuses à écrire. Cette fonctionnalité est pour le moment en aperçu seulement.

Les enregistrements ou Records (JEP359) fournissent une syntaxe compacte pour déclarer des classes qui contiennent des données peu immuables. Cette fonctionnalité peut réduire considérablement le code passe-partout dans les classes de ce type, mais le plus grand avantage est que cela permet la modélisation des données en tant que données. Il devrait être facile, clair et concis de déclarer ces agrégats de données nominaux peu immuables, souligne Oracle dans son communiqué. Les Records sont en aperçu pour le moment.

Les blocs de texte ou Text Blocks (JEP 368) sont une fonctionnalité très demandée. Ils sont arrivés avec Java 13. Ils le sont toujours avec Java 14. Ils sont en 'deuxième aperçu' indique Oracle.

Les blocs de texte sont des littéraux chaînes à plusieurs lignes. Il permet d'insérer beaucoup facilement, dans le code Java, des extraits de code en HTML, XML, SQL, JSON, etc.

Par exemple, le très fastidieux

String html = "<html>\n" +
              "    <body>\n" +
              "        <p>Hello, world</p>\n" +
              "    </body>\n" +
              "</html>\n";

deviendra

String html = """
              <html>
                  <body>
                      <p>Hello, world</p>
                  </body>
              </html>
              """;

ou, autre exemple,

String query = "SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n" +
               "WHERE `CITY` = 'INDIANAPOLIS'\n" +
               "ORDER BY `EMP_ID`, `LAST_NAME`;\n";

deviendra

String query = """
               SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
               WHERE `CITY` = 'INDIANAPOLIS'
               ORDER BY `EMP_ID`, `LAST_NAME`;
               """;

Arrivée en aperçu avec Java 12, la nouvelle syntaxe pour l'instruction swittch est désormais officiellement adoptée. La encore la clarté du code va en bénéficier. Par exemple

switch (day) {
    case MONDAY:
    case FRIDAY:
    case SUNDAY:
        System.out.println(6);
        break;
    case TUESDAY:
        System.out.println(7);
        break;
    case THURSDAY:
    case SATURDAY:
        System.out.println(8);
        break;
    case WEDNESDAY:
        System.out.println(9);
        break;
}

peut devenir

switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
    case TUESDAY                -> System.out.println(7);
    case THURSDAY, SATURDAY     -> System.out.println(8);
    case WEDNESDAY              -> System.out.println(9);
}

A remarquer encore l'arrivée (au stade d'incubateur) d'une API permettant d'accéder en toute sécurité et efficacement à la mémoire étrangère en dehors du tas Java selon les termes d'Oracle. Cette fonctionnalité est spécifiée dans JEP 370.

A remarquer enfin, que pour les utilisateurs et les entreprises qui recherchent un support commercial, Oracle propose également l'abonnement Oracle Java SE. Une solution de support économique et prévisible, assure l'entreprise.

Il est possible d'accéder à Java 14 ou aux formules de de support depuis le site officiel qu'Oracle dédie à Java.

Commentaires