IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

JDK 20 : la prochaine version de Java embarque six fonctionnalités phares parmi lesquelles Scoped Values
Une API qui permet de partager des données immuables au sein d'un même thread

Le , par Stéphane le calme

277PARTAGES

4  0 
Vous avez lu gratuitement 10 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de foxzoolm
Membre habitué https://www.developpez.com
Le 25/03/2023 à 11:25

List<Point> points=....
for ( Point(int x, int y): points ){
...
}
la question est : le sucre syntaxique fit-il grossir ?

perso je trouve se genre d'annotation extrêmement dangereuse...
le principe de la POO (selon moi) etant de garder les methodes et les datas le plus proche possible (syntaxiquement)...

voir des x, y se balander dans le code sans lien avec l'objet... SIC!!!
4  0 
Avatar de thelvin
Modérateur https://www.developpez.com
Le 25/03/2023 à 17:27
Citation Envoyé par professeur shadoko Voir le message
Si mes souvenirs sont bons parmi les principes avancés à l'intérieur de l'équipe initiale Java il y avait: méfions nous des "facilités d'écriture"! au risque d'être bavards pas d'implicites, pas de raccourcis! ça fait déjà un bout de temps que ces principes sont partis à la poubelle.
Oui ben ça nous a filé les lambdas et le instanceof pattern.
Le moins que l'on puisse dire est que mettre ces principes à la poubelle a été, jusqu'à maintenant, très bénéfique.
4  0 
Avatar de Padget
Membre régulier https://www.developpez.com
Le 22/03/2023 à 22:18
Je trouve que sur ce genre d'annonces d'Oracle il manque toujours des exemples de code pour illustrer les propos. Parce que j'ai personnellement rien compris au blabla sur la preversion 2 des records...
3  0 
Avatar de miaous
Membre averti https://www.developpez.com
Le 23/03/2023 à 10:24
Citation Envoyé par Padget Voir le message
Je trouve que sur ce genre d'articles il manque toujours des exemples de code pour illustrer les propos. Parce que j'ai personnellement rien compris au blabla sur la preversion 2 des records...
avec JEP 432 : Record Patterns (deuxième préversion) pour un record Point (int x, int y)
tu pourras ecrire
Code : Sélectionner tout
1
2
3
4
5
6
List<Point> points=....
for ( Point(int x, int y): points ){
System.out.println(" " +x ", " +y );

}
équivalent à:

Code : Sélectionner tout
1
2
3
4
5
6
7
8
List<Point> points=....
for ( Point p: points ){
int x=p.x();
int y=p.y();
System.out.println(" " +x ", " +y );

}
0  0 
Avatar de professeur shadoko
Membre chevronné https://www.developpez.com
Le 25/03/2023 à 9:04
Citation Envoyé par miaous Voir le message
avec JEP 432 : Record Patterns (deuxième préversion) pour un record Point (int x, int y)
tu pourras ecrire
Code : Sélectionner tout
1
2
3
4
5
6
List<Point> points=....
for ( Point(int x, int y): points ){
System.out.println(" " +x ", " +y );

}
équivalent à:

Code : Sélectionner tout
1
2
3
4
5
6
7
8
List<Point> points=....
for ( Point p: points ){
int x=p.x();
int y=p.y();
System.out.println(" " +x ", " +y );

}
Si mes souvenirs sont bons parmi les principes avancés à l'intérieur de l'équipe initiale Java il y avait: méfions nous des "facilités d'écriture"! au risque d'être bavards pas d'implicites, pas de raccourcis! ça fait déjà un bout de temps que ces principes sont partis à la poubelle.
0  0 
Avatar de professeur shadoko
Membre chevronné https://www.developpez.com
Le 26/03/2023 à 17:15
Citation Envoyé par thelvin Voir le message
Oui ben ça nous a filé les lambdas et le instanceof pattern.
Le moins que l'on puisse dire est que mettre ces principes à la poubelle a été, jusqu'à maintenant, très bénéfique.
pas de pb pour le instanceof mais pour le cas de lambda mes sentiments sont très partagés: c'est pratique mais une source d'effets de bord pas très explicites. Je rêve d'une forme syntaxique dans laquelle ce qui est modifiable dans le contexte soit bien spécifié (au risque d'être horriblement bavard).
0  0 
Avatar de bouye
Rédacteur/Modérateur https://www.developpez.com
Le 27/03/2023 à 5:37
C'est une question d'habitude a prendre, on a le même soucis avec les accesseurs des champs des record qui laissent tomber le prefix get (is pour les boolean) et se contentent de reprendre le nom de la variable a l'identique.
0  0 
Avatar de floyer
Membre éclairé https://www.developpez.com
Le 27/03/2023 à 16:16
Les lambda peuvent être très utile dans une approche fonctionnelle. On a une collection, et on déduit une autre collection avec map ou filter. Une approche «*purement fonctionnelle*» évite justement des effets de bord. Évidemment la fonction lambda peut avoir un effet de bord en interagissant avec les objets qui lui sont proposés, mais pas plus qu’un bloc équivalent dans une boucle for.
0  0