Rémy Schumm blog ingénieur

Java 15 - Schnellüberblick.

publiziert am 19. 01. 2021 um 19:05

Schneller Überblick: die neusten coolen Features von Java 15 - publiziert im Rahmen von Noser Kick-Off

Records

https://bugs.openjdk.java.net/browse/JDK-8222777

record Range(int lo, int hi) {
  public Range {
    if (lo > hi)  /* referring here to the implicit constructor parameters */
      throw new IllegalArgumentException(
        String.format("Wrong Order of Low and High(%d,%d)", 
        lo, hi)
      );
  }
}


Sealed Types

https://openjdk.java.net/jeps/360

Beispiel Geo-Typ

package com.example.geometry;

public sealed class Shape
    permits Circle, Rectangle, Square, Polygon {...}

...

public non-sealed class Polygon extends Shape {...}

see also: Data Classes and Sealed Types for Java

https://www.heise.de/news/Java-15-versteckt-und-versiegelt-Klassen-4902566.html?wt_mc=rss.red.developer.developer.atom.beitrag.beitrag

Detailled NullPointerExceptions

https://bugs.openjdk.java.net/browse/JDK-8218628

A new option is available to provide more helpful NullPointerException messages:

-XX:+ShowCodeDetailsInExceptionMessages

Text Blocks

Java 13 Preview

https://openjdk.java.net/jeps/355

Using “one-dimensional” string literals

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

Using a “two-dimensional” block of text

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

JS-Engine:

ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
Object obj = engine.eval("""
                         function hello() {
                             print('"Hello, world"');
                         }
                         
                         hello();
                         """);

n.b.: Warning: Nashorn engine is planned to be removed from a future JDK release - i.e. it is removed from JDK 15

Pattern Matching for instanceof

Integer eins = 1; 

> eins instanceof Integer i && i < 2 
==> true 

IDE

https://www.heise.de/news/Entwicklungsumgebung-Eclipse-in-neuer-Version-2020-06-erschienen-4786797.html?wt_mc=rss.red.developer.developer.atom.beitrag.beitrag

Hinweis: dieser Blog wiederspiegelt meine persönliche Meinung und hat nichts mit meiner Anstellung als Dozent der zhaw noch mit anderen Anstellungen zu tun.


zurück zum Seitenanfang