Java14
Java 14 est sorti le 17 mars 2020. Parmi les fonctions ajoutées dans Java14, je voudrais présenter les fonctions qui peuvent être utilisées pour écrire du code.
record(preview)
Vous pouvez facilement créer une classe pour contenir des données.
public record Customer(String name, String age){}
L'équivalent de la classe suivante est créé.
public class Customer {
private final String name;
private final String age;
public Customer(String name, String age) {
this.name = name;
this.age = age;
}
public String name() {
return this.name;
}
public String age() {
return this.age;
}
public String hashCode() {...}
public boolean equals() {...}
public String toString() {...}
}
La méthode de définition de la valeur n'étant pas définie, la valeur ne peut pas être modifiée après l'instanciation.
Il est désormais possible de définir une chaîne de caractères comprenant des sauts de ligne. Si vous entourez la chaîne de caractères avec "" au lieu de "", elle sera reconnue comme un bloc de texte.
String str1 = "aaaa\n"
+ "bbb";
String str2 = """
aaa
bbb\
"""
Les deux chaînes ci-dessus indiquent la même chose. Si vous ne souhaitez pas couper la ligne, entrez .
Helpful NullPointerExceptions
Il est désormais possible d'émettre un message détaillé lorsqu'une NullPointerException se produit.
String str = null;
str.length(); // NullPointerException
Par défaut, l'exception suivante est générée.
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:5)
Dans java14, si vous l'exécutez avec "-XX: + ShowCodeDetailsInExceptionMessages", l'exception détaillée suivante sera générée.
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.length()" because "<local1>" is null
at Test.main(Test.java:5)
Vous pouvez maintenant définir des variables de ce type tout en vérifiant le type avec instanceof.
Object obj = "obj";
if (obj instanceof String str){
System.out.println(str.length());
}
Recommended Posts