Etter seks mΓ₯neder med utvikling, Oracle utgitt plattform JavaSE 14 (Java Platform, Standard Edition 14), Γ₯pen kildekode OpenJDK-prosjektet brukes som en referanseimplementering. Java SE 14 opprettholder bakoverkompatibilitet med tidligere utgivelser av Java-plattformen; alle tidligere skrevne Java-prosjekter vil fungere uten endringer nΓ₯r de lanseres under den nye versjonen. Klar til Γ₯ installere Java SE 14-bygg (JDK, JRE og Server JRE) forberedt for Linux (x86_64), Windows og macOS. Referanseimplementering utviklet av OpenJDK-prosjektet Java 14 er fullstendig Γ₯pen kildekode under GPLv2-lisensen, med GNU ClassPath-unntak som tillater dynamisk kobling med kommersielle produkter.
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° mΓΈnstermatching i "instanceof"-operatoren, som lar deg umiddelbart definere en lokal variabel for Γ₯ fΓ₯ tilgang til den sjekkede verdien. For eksempel kan du umiddelbart skrive "if (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}" uten Γ₯ eksplisitt definere "String s = (String) obj".
Det var:
if (obj forekomst av gruppe) {
Gruppegruppe = (Gruppe) obj;
var oppfΓΈringer = group.getEntries();
}
NΓ₯ kan du klare deg uten definisjonen "Group group = (Group) obj":
if (objektforekomst av gruppegruppe) {
var oppfΓΈringer = group.getEntries();
}
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° Β«rekord", som gir en kompakt form for Γ₯ definere klasser, slik at du kan unngΓ₯ eksplisitt Γ₯ definere forskjellige lavnivΓ₯metoder som equals(), hashCode() og toString() i tilfeller der data bare lagres i felt hvis virkemΓ₯te ikke endres. NΓ₯r en klasse bruker standardimplementeringer av metodene equals(), hashCode() og toString() kan den klare seg uten deres eksplisitte definisjon:
offentlig post banktransaksjon(LocalDate dato,
dobbelt belΓΈp
Strengebeskrivelse) {}
Denne erklæringen vil automatisk legge til implementeringer av metodene equals(), hashCode() og toString() i tillegg til konstruktør- og gettermetodene.
var log = switch (event) {
case PLAY -> Β«User has triggered the play buttonΒ»;
case STOP, PAUSE -> Β«User needs a breakΒ»;
default -> {
String message = event.toString();
LocalDateTime now = LocalDateTime.now();
yield Β«Unknown event Β» + message +
Β» logged on Β» + now;
}
};
Exception in thread Β«mainΒ» java.lang.NullPointerException: Cannot invoke Β«Location.getCity()Β»
because the return value of Β«User.getLocation()Β» is null
at NullPointerExample.main(NullPointerExample.java:5):5)