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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Java : le JDK 12 est disponible, il prend en charge Unicode 11 et les expressions Switch


Sujet :

Java

  1. #21
    Chroniqueur Actualit�s

    Homme Profil pro
    Dirigeant
    Inscrit en
    Juin 2016
    Messages
    3 160
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : B�nin

    Informations professionnelles :
    Activit� : Dirigeant
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 3 160
    Par d�faut Java : Oracle publie la premi�re release candidate du JDK 12
    Java : Oracle publie la premi�re release candidate du JDK 12
    avec toutes les fonctionnalit�s majeures annonc�es sauf les litt�raux de cha�nes bruts

    L�annonce a �t� faite le 15 f�vrier par Oracle que la premi�re version Release Candidate du JDK 12 est disponible en t�l�chargement pour les plateformes Linux, Mac OS et Windows. Cette version RC1 a �t� lanc�e, dit la JEP (proposition d�am�lioration du JDK), dans le but de recenser les bogues qu�il pourrait y avoir ainsi que les diff�rentes suggestions de la communaut� avant sa date de disponibilit� g�n�rale pr�vue pour le 19 mars prochain. Passons en revue sa feuille de route depuis l�annonce de sa version b�ta en d�cembre � ce jour.

    La publication de la version b�ta du JDK 12 remonte � d�cembre dernier. � ce moment, plusieurs fonctionnalit�s sont apparues dans le kit de d�veloppement et plusieurs autres ont �t� annonc�es pour la suite de sa mise au point. Cette version b�ta alignait neuf nouveaut�s principales et quelques fonctionnalit�s telles que la prise en charge d'Unicode 11, un nouveau format de cl� priv�e cod�e x25519 et x448 compatible avec la norme RFC 8410. Les neuf caract�ristiques qui ont �t� pr�sent�es sont les suivantes :

    • Shenandoah : c�est un ramasse-miettes � faible temps de pause en effectuant le travail d��vacuation simultan�e entre les threads java en cours d�ex�cution. Les temps de pause sont ind�pendants de la taille du tas ;
    • suite Microbenchmark : c�est un outil pour aider les d�veloppeurs � utiliser les microcrit�res existant d�j� dans le code source du JDK ou en cr�er de nouveaux ;
    • expression de commutation : apporte quelques modifications � l�instruction switch pour la rendre plus flexible ;
    • litt�raux de cha�nes bruts : permettent aux d�veloppeurs de pouvoir utiliser des cha�nes litt�rales brutes sans �chappement ;
    • API de constantes JVM : permet d�ajouter une API pour les descriptions nominales des principaux art�facts de classes et de fichiers de classe, en particulier les constantes pouvant �tre charg�es � partir du pool de constantes ;

    • un apport AArch64, pas deux : sert � supprimer toutes les sources li�es aux arm64port pour permettre � tous les contributeurs de concentrer leurs efforts sur une impl�mentation ARM 64 bits unique et d��liminer le travail en double requis par la maintenance de deux ports ;
    • archives CDS par d�faut : sert � am�liorer le processus de g�n�ration JDK afin de g�n�rer une archive CDS (Class Data Sharing) � l�aide de la liste de classe par d�faut sur des plateformes 64 bits ;
    • collections m�lang�es abandonn�es pour G1 : permet d�annuler les collections d��l�ments lorsqu�elles peuvent d�passer la cible de pause ;
    • retournez rapidement la m�moire valid�e non utilis�e de G1 : am�liore le r�cup�rateur G1 pour qu�il puisse renvoyer automatiquement la m�moire heap de Java au syst�me d�exploitation lorsqu�il est inactif.

    Nom : Java-Development-Kit-JDK-Tutorial-in-Urdu.jpg
Affichages : 72792
Taille : 38,6 Ko

    Seulement quelques jours apr�s cette publication, la JEP annon�ait qu�une des fonctionnalit�s mises en avant dans la version b�ta ne sera probablement plus prise en charge ou ne sera plus int�gr�e dans le JDK 12. Il s�agissait des litt�raux de cha�nes bruts pour lesquels la JEP a indiqu� n�avoir pas encore trouv� le bon moyen d�impl�menter cette fonctionnalit� au sein du JDK 12.

    � En examinant les commentaires que nous avons re�us, je ne suis plus convaincue que nous ayons encore trouv� le bon compromis entre complexit� et expressivit�, ou que nous en avons suffisamment explor� l�espace de conception pour �tre s�r que la conception actuelle est la meilleure que nous puissions faire. En le retirant, nous pouvons continuer � affiner la conception, explorer plus d'options et viser un aper�u r�pondant r�ellement aux exigences du processus de fonction de pr�visualisation (JEP 12) �, avait �crit dans un mail, Brian Goetz, architecte du langage Java chez Oracle.

    La JEP a mis en ex�cution cette annonce plus tard, vers la fin du mois de d�cembre, en supprimant d�finitivement cette fonctionnalit� de la pr�version du JDK 12. Pour se justifier, la JEP avait list� plusieurs raisons � cette suppression. On pourrait citer par exemple le fait que les litt�raux de cha�ne peuvent s��tendre sur plusieurs lignes et n'interpr�te pas les s�quences d'�chappement telles que les \n correspondant aux �chappements Unicode de la forme \uXXXX ou le fait que les litt�raux de cha�nes bruts en g�n�ral ne prennent pas directement en charge l'interpolation de cha�ne. De nombreux autres probl�mes (par exemple les d�limiteurs) li�s aux litt�raux de cha�nes bruts avaient �t� cit�s par la JEP sur le site du OpenJDK.

    Par comparaison � ses pairs, la JEP indiquait que les langages de programmation tels que C++, Groovy, JavaScript, Python pour ne citer que ceux-l� utilisent des litt�raux de cha�ne bruts et donc, qu'elle �tudie ces langages pour les d�limiteurs qu�ils utilisent ou pour rechercher des repr�sentations de cha�nes. Un groupe d�internautes avaient conseill� � la JEP de regarder dans Python 3.7 pour en tricher l�impl�mentation des litt�raux de cha�nes bruts qu�ils jugent �tre une r�ussite. � En fait, je craignais que Java ne soit trop influenc� par C# en ce qui concerne les cha�nes. Les d�veloppeurs Java devraient regarder dans Python 3.7 et non pas C# pour de belles syntaxes de cha�nes �, avait-il �crit en commentaire.

    D�autres par contre, �taient un peu cat�goriques sur le sujet. Un parmi eux avait �crit ceci : � En termes simples, je ne vois que tr�s peu de cas d�utilisation o� les cha�nes brutes pourraient �tre utiles, qui permettent ou encouragent de nombreuses mauvaises pratiques. Dans mon esprit, les cha�nes multilignes sont encore moins utiles et ajoutent une complexit� inutile (voir la section sur la gestion des marges). Je ne pense pas que �a vaille le coup �.

    De nombreux tests �tant faits depuis d�cembre pass�, la RC1 vient donc d��tre publi�e. Elle est publi�e avec les 8 fonctionnalit�s majeures restantes depuis la suppression des litt�raux de cha�nes bruts. Ce sont : Shenandoah (le ramasse-miettes � temps de pause r�duit), l�API de constantes JVM, la suite Microbenchmark, l�annulation des collections mixtes pour G1, le retour rapide de la m�moire non utilis�e de G1, les archives CDS par d�faut, un apport AArch64 et les expressions de commutation. Toutes les fonctionnalit�s sont donc au rendez-vous � part bien s�r les litt�raux de cha�nes bruts. Vous pouvez acc�der au site de l�OpenJDK pour en apprendre davantage sur cette release candidate du JDK 12 et en savoir plus sur les fonctionnalit�s pr�cit�es.

    En septembre 2017, Oracle avait annonc� qu�il y aura � l�avenir deux versions du JDK par an du fait que Java soit en concurrence directe avec d�autres plateformes qui sont mises � jour plus souvent. Apr�s la sortie du JDK 12 le 19 mars prochain, il y aura donc tr�s probablement une autre version du JDK courant cette ann�e. Ceci �tant dit, il semble qu�aucune fonctionnalit� n�est en vue d��tre ajout�e � cette version du JDK. Beaucoup d�internautes sur Reddit se disent impatients de pouvoir tester cette version du JDK et sont curieux de savoir ce que les prochaines versions de ce dernier r�servent � la communaut�.

    Source : OpenJDK

    Et vous ?

    Que pensez-vous de la RC1 de JDK 12 ?
    Cette version admissible comble-t-elle vos attentes ? Pourquoi ?
    Quelles autres fonctionnalit�s souhaiteriez-vous avoir dans le JDK 12 ?

    Voir aussi

    Java : le JDK 12 est disponible en version b�ta, il prend en charge Unicode 11 et dispose d'un nouveau format de cl� priv�e cod� x25519 et x448

    Java 12 ne prendra probablement pas en charge les litt�raux de cha�ne bruts, la proposition d'am�lioration JDK (JEP) sugg�re qu'on les supprime

    Les litt�raux de cha�ne bruts ont �t� supprim�s de Java 12 comme l'a sugg�r� la proposition d'am�lioration JDK (JEP)
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et R�digez des actualit�s

  2. #22
    Chroniqueur Actualit�s
    Avatar de Michael Guilloux
    Homme Profil pro
    Data Consultant
    Inscrit en
    Juillet 2013
    Messages
    2 976
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 34
    Localisation : C�te d'Ivoire

    Informations professionnelles :
    Activit� : Data Consultant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2 976
    Billets dans le blog
    2
    Par d�faut Java 12 disponible avec les expressions Switch
    Java 12 disponible avec les expressions Switch
    un nouveau r�cup�rateur de m�moire � faible temps de pause et diverses am�liorations pour G1

    Apr�s la sortie de Java 9 en septembre 2017, Oracle a adopt� un nouveau cycle de publication de six mois : une nouvelle version en mars et septembre de chaque ann�e et une version LTS tous les 18 mois. Les versions interm�diaires seront donc des mises � jour de fonctionnalit�s qui ne se seront prises en charge que pendant 6 mois, le temps que la prochaine version arrive. Conform�ment � ce nouveau timing, Oracle vient d'annoncer la sortie de Java 12.

    La nouvelle version apporte un certain nombre de nouvelles fonctionnalit�s et d�am�liorations remarquables. Plus pr�cis�ment, Java 12 inclut une nouvelle fonctionnalit� de langage, les expressions Switch (en pr�version), un nouveau r�cup�rateur de m�moire � faible temps de pause appel� Shenandoah (exp�rimental) et diverses am�liorations au r�cup�rateur de m�moire par d�faut Garbage First (G1). En tout, Java 12 introduit huit principales am�liorations (JEP) que nous pr�sentons ici.

    Expressions Switch

    Cette fonctionnalit� en pr�version �tend l'instruction Switch afin qu'elle puisse �tre utilis�e �galement en tant qu'expression. Le Switch n'est donc plus juste une structure de contr�le (comme les if/else), mais peut maintenant renvoyer une valeur. Avec cette fonctionnalit� vient aussi une nouvelle syntaxe plus pratique et plus concise qui utilise l'op�rateur arrow (->), et qui supprime le besoin d�instructions break. Pr�cisons que seul le code � droite de -> est ex�cut�.

    Ci-dessous un exemple de code avec le Switch classique : les nombreuses instructions break dans le code le rendent inutilement verbeux, ce qui peut souvent masquer des erreurs de d�bogage difficiles � identifier.

    Code Java : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    switch (day) {
        case MONDAY:
        case FRIDAY:
        case SUNDAY:
            System.out.println(6);
            break;
        case TUESDAY:
            System.out.println(7);
            break;
        case THURSDAY:
        case SATURDAY:
            System.out.println(8);
            break;
        case WEDNESDAY:
            System.out.println(9);
            break;
    }


    Le code pr�c�dent peut �tre r��crit comme suit avec la nouvelle syntaxe utilisant -> et sans break :

    Code Java : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    switch (day) {
        case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
        case TUESDAY                -> System.out.println(7);
        case THURSDAY, SATURDAY     -> System.out.println(8);
        case WEDNESDAY              -> System.out.println(9);
    }


    Code avec expression Switch :

    Code Java : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    int numLetters = switch (day) {
        case MONDAY, FRIDAY, SUNDAY -> 6;
        case TUESDAY                -> 7;
        case THURSDAY, SATURDAY     -> 8;
        case WEDNESDAY              -> 9;
    };


    Collectes mixtes annulables pour G1

    Il s'agit ici de pouvoir avorter les collectes G1 mixtes si elles risquent de d�passer la cible de pause. Si cela est n�cessaire pour respecter la cible de temps de pause fournie par l'utilisateur, G1 (Garbage First) sera en effet contraint d'abandonner le processus de r�cup�ration de m�moire. Pour cela, le jeu de r�gions dans lesquelles la r�cup�ration de m�moire sera effectu�e est divis� en parties obligatoires et facultatives. Ce qui permet � G1 d'avorter le processus de r�cup�ration des parties facultatives si le temps de pause n�est pas respect�.


    Renvoi imm�diat de la m�moire non utilis�e par G1 au syst�me d'exploitation

    Java 12 am�liore le r�cup�rateur de m�moire G1 afin de renvoyer automatiquement le tas Java (la m�moire heap) au syst�me d'exploitation. Il s'agissait en effet de faire en sorte que G1 renvoie les zones de m�moire collect�es au syst�me d'exploitation apr�s une p�riode de faible activit� de l'application. Jusqu'� pr�sent, G1 ne renvoyait la m�moire au syst�me d�exploitation qu�apr�s un Full GC, chose qu�il �vitait d'ailleurs, car l'un des objectifs d�une JVM correctement param�tr�e est d�avoir le moins de Full GC possible. Ce qui fait qu'en g�n�ral, le r�cup�rateur de m�moire G1 ne retournait pas du tout la m�moire effac�e vers le syst�me d�exploitation.

    Archives CDS par d�faut

    Class Data Sharing (CDS) est une fonctionnalit� de la JVM qui permet de r�duire le temps de d�marrage de celle-ci, en enregistrant dans un fichier les m�tadonn�es des classes pour une r�utilisation lors du prochain lancement de la JVM. Toutefois, si vous n'installez pas le JRE avec le programme d'installation, l'archive CDS n'est pas g�n�r�e par d�faut et la commande java -Xshare:dump doit �tre ex�cut�e manuellement. Dans Java 12, les archives CDS seront g�n�r�es par d�faut sur les plateformes 64 bits, pas besoin d�argument sp�cifique dans la ligne de commande.

    Un seul port ciblant l'architecture ARM 64 bits

    Il existe deux ensembles diff�rents de codes source (donc de ports) ciblant ARM 64 bits dans le JDK. L'un, fourni par Oracle, est arm64 (disponible dans le r�pertoire src/hotspot/cpu/arm) et l'autre est aarch64 (disponible dans le r�pertoire open/src/hotspot/cpu/aarch64). Dans Java 12, il y aura d�sormais un seul port ciblant l'architecture ARM 64 bits. Toutes les sources li�es au port arm64 ont �t� supprim�es tout en conservant le port ARM 32 bits et le port aarch64. La suppression d'un port 64 bits permettra � tous les contributeurs de concentrer leurs efforts sur une impl�mentation ARM 64 bits unique et d��liminer le travail en double requis pour la maintenance de deux ports.

    API de constantes JVM

    Java 12 introduit une API pour mod�liser les descriptions nominales des fichiers de classe cl� et artefacts de runtime, en particulier des constantes pouvant �tre charg�es � partir du pool de constantes.

    Shenandoah, un ramasse-miettes � faible temps de pause

    Java 12 ajoute un nouvel algorithme de r�cup�ration de m�moire r�duisant les temps de pause du GC en effectuant le travail d'�vacuation en m�me temps que les threads Java en cours d'ex�cution. D�velopp� par Redhat et d�j� inclus depuis plusieurs mois dans leur JVM, Shenandoah est int�gr� en tant que fonctionnalit� exp�rimentale dans Java 12. Les temps de pause avec Shenandoah sont ind�pendants de la taille du tas, ce qui signifie que vous aurez les m�mes temps de pause, que votre tas soit de 200 Mo ou de 200 Go.

    Suite de microbenchmarks

    Java 12 vient avec une suite de base de microbenchmarks introduite au code du JDK. Les d�veloppeurs peuvent facilement ex�cuter les microbenchmarks existants et en cr�er de nouveaux.

    Pas de litt�raux de cha�ne bruts (Raw String Literals)

    Enfin, rappelons que les litt�raux de cha�ne bruts (Raw String Literals) ont �t� supprim�es du JDK 12. Les litt�raux de cha�ne bruts facilitent l'utilisation de cha�nes contenant des caract�res sp�ciaux et des cha�nes multilignes. Ils sont cr��s avec le symbole backtick (accent grave) : `. Il s'agissait �galement d'introduire la fonction String::align pour faciliter l�utilisation de texte multiligne indent� et les fonctions unescape/escape pour les conversions vers ou � partir de litt�raux de cha�ne (traditionnels). Mais cette fonctionnalit� qui �tait pr�vue pour le JDK 12 a �t� supprim�e au dernier moment. Elle pourrait r�appara�tre dans les versions � venir.

    Source : Blog Oracle

    Et vous ?

    Que pensez-vous des nouveaut�s et am�liorations de Java 12 ?
    Lesquelles appr�ciez-vous le plus et pourquoi ?
    Comptez-vous migrer vers cette version ou attendre la prochaine LTS ?

    Voir aussi :

    JavaFX disponible en version 12, la boite � outils graphique suit l'�volution de Java
    Quelle version de Java utilisez-vous ? Qu'est-ce qui vous emp�che de migrer vers une version plus r�cente ?
    Java : une version � acc�s anticip� du JDK 13 est publi�e, Oracle veut unifier les deux m�thodes de la classe GraphicsEnvironment
    Java : Oracle publie la premi�re release candidate du JDK 12, avec toutes les fonctionnalit�s majeures annonc�es sauf les litt�raux de cha�nes bruts
    Quelles impl�mentations JPA (Java Persistence API) utilisez-vous et pourquoi ? Partagez votre exp�rience
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et R�digez des actualit�s

  3. #23
    R�dacteur/Mod�rateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Ao�t 2005
    Messages
    6 900
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : Nouvelle-Cal�donie

    Informations professionnelles :
    Activit� : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par d�faut
    A noter que l'expression switch supporte �galement les blocs multi-lignes entre {} et qu'il faut alors utiliser l'instruction break pour faire un retour de la valeur.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        public void assignValue(Size size) {
            int height = 0;
            height = switch(size) {
                case S -> 18;
                case M -> {
                        int weight = 19;
                        break (weight > 10 ? 15 : 20); 
                    } 
                case L, XL -> 25;
            };
        }
    A noter de plus qu'il ne s'agit pas la d'une fonctionnalit� d�finitive mais d'une fonctionnalit� en aper�u (Preview Language and VM Features), ce qui veut dire que oui elle est bien compl�te et fonctionnelle mais peut �tre modifi�e ou retir�e d'un prochain JDK si jamais il s�av�re qu'elle cause trop de soucis.

    Citation Envoy� par http://openjdk.java.net/jeps/12
    A preview language or VM feature is a new feature of the Java SE Platform that is fully specified, fully implemented, and yet impermanent. It is available in a JDK feature release to provoke developer feedback based on real world use; this may lead to it becoming permanent in a future Java SE Platform.
    Source : blog de intellij sur le support des switch expression dans Intellij 2019.1 disponible en Early Access (la version 2018.3 fonctionne avec le JDK 12 mais ne supporte pas cette syntaxe)

    EDIT - Avis perso : je pense que syntaxiquement c��tait une erreur de choisir break et que return aurait �t� plus le bienvenu a cet endroit. M�me si le m�canisme sous-jacent est probablement diff�rent de celui des m�thode, lambda et autres classe anonyme et qu'il ont fait ce choix pour des raisons d�analyse syntaxique ou de compilateur, il semble plus logique pour le programmeur moyen que la valeur renvoy�e par un bloc, quel qu'il soit, se fasse de mani�re unifi�e par une instruction return. D'un autre cote il s'agit aussi d'un bloc d'expression comme pour similaire a un for ou un while et donc �a pourrait poser le soucis que �a laisserait penser a ce que cette instruction sorte de la m�thode englobant le switch.
    Merci de penser au tag quand une r�ponse a �t� apport�e � votre question. Aucune r�ponse ne sera donn�e � des messages priv�s portant sur des questions d'ordre technique. Les forums sont l� pour que vous y postiez publiquement vos probl�mes.

    suivez mon blog sur D�veloppez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #24
    Membre �clair�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par d�faut
    Citation Envoy� par bouye Voir le message
    A noter que l'expression switch supporte �galement les blocs multi-lignes entre {} et qu'il faut alors utiliser l'instruction break pour faire un retour de la valeur.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        public void assignValue(Size size) {
            int height = 0;
            height = switch(size) {
                case S -> 18;
                case M -> {
                        int weight = 19;
                        break (weight > 10 ? 15 : 20); 
                    } 
            };
        }
    EDIT - Avis perso : je pense que syntaxiquement c��tait une erreur de choisir break et que return aurait �t� plus le bienvenu a cet endroit. M�me si le m�canisme sous-jacent est probablement diff�rent de celui des m�thode, lambda et autres classe anonyme et qu'il ont fait ce choix pour des raisons d�analyse syntaxique ou de compilateur, il semble plus logique pour le programmeur moyen que la valeur renvoy�e par un bloc, quel qu'il soit, se fasse de mani�re unifi�e par une instruction return. D'un autre cote il s'agit aussi d'un bloc d'expression comme pour similaire a un for ou un while et donc �a pourrait poser le soucis que �a laisserait penser a ce que cette instruction sorte de la m�thode englobant le switch.
    J'imagine que les parenth�se sont optionnelles et qu'on peut �crire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    break weight > 10 ? 15 : 20;
    ?
    Perso sans parler de l'aspect technique qui ne me parait pas pertinent dans le choix du mot cl�, le choix du mot cl� "break" me parait plus pertinent que "return". Pour interrompre le file d�ex�cution d'une m�thode, on utilise le mot cl� "return". Pour interrompe le file d�ex�cution d'une structure de contr�le (while, for switch), on utilise "for" (voir "continue").

    Sinon plut�t (ou en compl�ment) que break une autre syntaxe pourrait �tre pertinente :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        public void assignValue(Size size) {
            int height = 0;
            height = switch(size) {
                case S -> 18;
                case M -> {
                        int weight = 19;
                        weight > 10 ? 15 : 20; 
                    } 
            };
        }
    Comme dans pas mal de langage fonctionnel, l'�valuation d'un bloc d'instruction correspond � l��valuation de la derni�re instruction de ce bloc. Mais j'imagine qu'autoriser �a dans ce contexte forcerai � modifier le comportement des lambdas et du "return" classique afin d'uniformiser le langage.

  5. #25
    Membre tr�s actif

    Homme Profil pro
    Hobbyiste
    Inscrit en
    Juillet 2018
    Messages
    128
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Hobbyiste

    Informations forums :
    Inscription : Juillet 2018
    Messages : 128
    Billets dans le blog
    1
    Par d�faut Pas tout � fait en rapport avec les nouveaut�s
    Voil�,

    Pour les nouveaut�s �a a l'air chouette. Surtout l'am�lioration du GC, qui me laisse esp�rer pour certains de mes projets.
    Mon probl�me est que j'utilise un IDE payant, et je ne peux pas renouveler ma licence pour l'instant. L'IDE JetBrains ne reconna�t la string de version "10" "11" "12" parce que ... raison commerciale certainement en 2019.

    Connaissez-vous un patch? Parce que Eclipse et Netbeans je ne sais pas les utiliser.

    PS il y a bien une version gratuite des produits JetBrains pour une utilisation libre (ce qui est mon cas) mais apparemment quand on a pay� une licence on ne sait pas r�trograder.

  6. #26
    Membre Expert
    Avatar de Mickael_Istria
    Homme Profil pro
    D�veloppeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 478
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 478
    Par d�faut
    C'est justement l'occasion ou jamais d'apprendre a utiliser un IDE open-source et durable

  7. #27
    R�dacteur/Mod�rateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Ao�t 2005
    Messages
    6 900
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : Nouvelle-Cal�donie

    Informations professionnelles :
    Activit� : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par d�faut
    J'ai la version 2018.3 Community de Intellij IDEA et il fonctionne tr�s bien avec les JDK 9, 10, 11 et 12 juste qu'il ne supporte le switch expression. La version 2019.1 qui est dispo sur le canal early access est sens� le supporter. Intellij IDEA ne supporte pas JLink par contre. Le supporte des modules fonctionne plut�t bien dans Intellij.

    Apache NetBeans 10 supporte les JDK 8, 9 et 10 mais pas trop 11 il me semble (� v�rifier) et encore moins le 12 (il me semble que c'est pr�vu pour NetBeans 11 d'apr�s la roadmap chez Apache). Apache NetBeans supporte JLink et coupl� avec le JDK 8 supporte tr�s bien javapackager. Le support des modules est d�faillant dans Apache NetBbeans lorsqu'on utilise des legacy jar avec noms de modules auto-g�n�r�s, pour une raison que je ne m'explique pas Apache NetBeans n'utilise pas la m�me r�gle de g�n�ration de nom de module que le JDK.
    Merci de penser au tag quand une r�ponse a �t� apport�e � votre question. Aucune r�ponse ne sera donn�e � des messages priv�s portant sur des questions d'ordre technique. Les forums sont l� pour que vous y postiez publiquement vos probl�mes.

    suivez mon blog sur D�veloppez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  8. #28
    R�dacteur/Mod�rateur


    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    F�vrier 2004
    Messages
    19 875
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 19 875
    Par d�faut
    Les expressions switch ressemblent comme deux gouttes d'eau � celles qui arrivent en C# 8 (juste les fl�ches qui sont diff�rentes : "->" en Java, "=>" en C#). Quant � savoir qui a copi� l'autre, je ne m'avancerai pas... de toute fa�on Java et C# se sont toujours piqu� des id�es

  9. #29
    Membre Expert
    Avatar de Mickael_Istria
    Homme Profil pro
    D�veloppeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 478
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 478
    Par d�faut
    Eclipse IDE 2019-03 supporte bien Java 12 (et les switch expressions) en lui ajoutant cette extension: https://marketplace.eclipse.org/cont...se-2019-03-411

Discussions similaires

  1. R�ponses: 1
    Dernier message: 14/12/2018, 21h17
  2. R�ponses: 52
    Dernier message: 28/06/2012, 16h36
  3. R�ponses: 38
    Dernier message: 08/07/2010, 10h31
  4. JBoss EAP 5.0 est disponible et supporte de nouveaux composants Java
    Par Katleen Erna dans le forum Actualit�s
    R�ponses: 0
    Dernier message: 03/09/2009, 03h38
  5. R�ponses: 5
    Dernier message: 02/02/2009, 10h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo