Il y a quelque semaines paraissait la version 13 du langage avec des nouveautés sympathiques mais qui ne cassaient pas trois pattes à un canard_/° =.
La prochaine version prévue pour la fin de l’hiver s’annonce nettement plus étoffée avec pas moins de 13 JEP au moment d’écrire ces lignes.
Records
On pourra trouver les Records qui permettront d’encapsuler de manière immutable de la donnée en une ligne.
record Moule(String pseudo, Tribune tribune){}
Les accesseurs, equals, hashCode et toString n’ont pas besoin d’être précisés car le langage se débrouille tout seul. Il n’est pas interdit d’ajouter des méthodes pour éviter de construire un objet invalide, par exemple.
Le début de commencement du Pattern Matching
Alors que le filtrage par motif existe en Scala, Clojure, Groovy et Kotlin soit les principaux autres langage fonctionnant sur la JVM, il fait enfin son apparition en Java. Pour le moment ça reste timide puisqu’il est limité à la méthode instanceof
. Dans les versions suivantes il sera disponible à d’autres endroits. En Java 14, il sera possible d’écrire :
String formatted = "unknown";
if (obj instanceof Integer i) {
formatted = String.format("int %d", i);
}
else if (obj instanceof Byte b) {
formatted = String.format("byte %d", b);
}
else if (obj instanceof Long l) {
formatted = String.format("long %d", l);
}
else if (obj instanceof Double d) {
formatted = String.format("double %f", d);
}
else if (obj instanceof String s) {
formatted = String.format("String %s", s);
}
Ça ne reste pas bien folichon mais ce qui est prévu c’est de pouvoir écrire :
String formatted =
switch (obj) {
case Integer i -> String.format("int %d", i)
case Byte b -> String.format("byte %d", b);
case Long l -> String.format("long %d", l);
case Double d -> String.format("double %f", d);
case String s -> String.format("String %s", s);
default -> obj.toString();
};
Avec ces deux nouveautés, j’ai l’impression que Lombok va pouvoir se rhabiller.
Et vous dans la liste des nouveautés, qu’est-ce qui vous fait envie à part tester le dernier framework JavaScript à la mode ou rester sur Kotlin ?
# Les texts blocks
Posté par Lizzie Crowdagger (site web personnel) . Évalué à 4. Dernière modification le 26 novembre 2019 à 20:28.
Bon en vrai j'utilise pas spécialement Java mais je dirais les "text blocks", comme le reste c'est pas une killer feature qu'on a jamais vue ailleurs mais c'est le genre de trucs qui rend vraiment moins pénible de manipuler du texte et qui mérite à mon avis d'être mentionné.
[^] # Re: Les texts blocks
Posté par Letho . Évalué à 2.
Je plussoie, c'est quelque chose que j'apprécie beaucoup en Elixir, et que j'aurais aimé avoir en Java quand c'était mon langage de travail.
[^] # Re: Les texts blocks
Posté par barmic 🦦 . Évalué à 2.
Je vois assez peu l'usage que j'en aurais mis à part dans certains tests. Je rate quelque chose ?
https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll
[^] # Re: Les texts blocks
Posté par Yves (site web personnel) . Évalué à 3.
requêtes JDBC ?
[^] # Re: Les texts blocks
Posté par Letho . Évalué à 1.
C'est effectivement assez rare. Un cas d'usage que nous avions était les templates de textes destinés à l'utilisateur (génération de mail, par exemple).
# Les développeurs java
Posté par stopspam . Évalué à -10.
Un rien les fait bander et je me demande s'ils n'ont pas confondu les grains de café avec les bonbons au viagra :)
[^] # Re: Les développeurs java
Posté par raphj . Évalué à 3.
Assez ironique, ce nom d'utilisateur.
# Tout se perd
Posté par lolop (site web personnel) . Évalué à 1.
Si en plus on nous enlève des raisons de troller…
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
# Preview
Posté par barmic 🦦 . Évalué à 5. Dernière modification le 27 novembre 2019 à 06:56.
Fait gaffe les 2 nouveautés dont tu parle sont en preview ce qui signifie qu'elles peuvent évoluer de manière non rétro compatibles dès java 15.
L'API pour accéder aux NVM. Ça a l'air sympa à utiliser ce genre de mémoire.
https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll
# envie de gros paquets
Posté par devnewton 🍺 (site web personnel) . Évalué à 6.
La possibilité de packager une application sous forme d'installeur (msi, dmg, rpm, deb) avec le jdk intégré https://openjdk.java.net/jeps/343 serait un vrai plus. C'est possible aujourd'hui, mais il faut bidouiller.
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
# mouais
Posté par fearan . Évalué à 3.
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: mouais
Posté par Dr BG . Évalué à 2. Dernière modification le 27 novembre 2019 à 14:06.
C’est-à-dire, tu voudrais des mixins ?
[^] # Re: mouais
Posté par fearan . Évalué à 2.
Yep sauf que c'est sur des objet dont on ne maitrise pas forcément la création…
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
# Records
Posté par Victor STINNER (site web personnel) . Évalué à 3.
Tiens marrant, Python 3.7 a ajouté la même feature : PEP 557—Data Classes. Cette PEP n'était pas non plus un grosse nouveauté, il existait déjà le module attrs sur PyPI qui faisait la même chose depuis longtemps. Sauf que là c'est une version allégée (restreinte) qui a été ajouté à la bibliothèque standard.
Comme quoi, il n'y pas pas que Java qui souffre de la "verbosité" de la programmation orientée objet :-)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.