Schneller Überblick: die neusten coolen Features von Java 15 - publiziert im Rahmen von Noser Kick-Off
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)
);
}
}
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
https://bugs.openjdk.java.net/browse/JDK-8218628
A new option is available to provide more helpful NullPointerException messages:
-XX:+ShowCodeDetailsInExceptionMessages
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
instanceof
Integer eins = 1;
> eins instanceof Integer i && i < 2
==> true
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.