|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 |
|
Membre expérimenté
![]() Inscription : juillet 2007 Messages : 729 ![]() |
D'autant que je sache, il sera possible de faire un switch avec des String. Il aurait été souhaitable que cela soit également possible avec les enums. Cela ne devrait pas poser de difficulté technique puisque les enums sont associé à un ordinal.
|
|
|
00
|
|
|
#22 | |
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 657 ![]() |
Citation:
C'est déjà le cas, et ce depuis l'intégration des enum dans Java 5... a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|
|
00
|
|
|
#23 |
|
Membre expérimenté
![]() Inscription : juillet 2007 Messages : 729 ![]() |
mdr, voilà ce que c'est de travailler sur une version 1.4 !!!
|
|
|
00
|
|
|
#24 |
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 253 ![]() |
Ce que j'aurais préféré avoir en plus ? La gestion améliorée des exceptions : tant le multiple-catch que le rethrow ; une amélioration substantielle de Swing.
Ce que j'apprécie particulièrement : les nouvelles manières d'introduire un nombre dans le code source. Tant la forme binaire que l'ajout de caractères de soulignement pour espacer le code me satisfont. C'est juste une amélioration syntactique, mais c'est tellement bon quand on est appelé à maintenir une application d' 1.000.000 de lignes de codes codée dans les années 1998-2003. Quelques changements possibles ? Pour une fois virer la compatibilité ascendante afin de virer toutes les mauvaises manoeuvres que l'on voit tous les jours (utilisation et comput de Date, alors que Calendar existe), virer les méthodes désuettes dont on n'a que faire et qui n'existent plus que dans du code vieux de 10 ans, pouvoir enfin recevoir un java.awt.Graphics qui a les possibilités d'un Graphics2D sans caster, et j'en passe. En gros, j'aurais aimé un peu d'audace |
|
|
00
|
|
|
#25 | |
|
Expert Confirmé Sénior
![]() ![]() |
Citation:
Autant la compatibilité ascendante est un avantage de Java, autant c'est un frain pour l'évolution du langage. Personnellement, je ne pense pas que la compatibilité ascendante justifie de garder des choses obsolètes de ne pouvoir effectuer certaines améliorations soit au niveau du compilateur, du langage ou de la librairie standard. Je sacrifierais volontiers la compatibilité ascendante au prix d'améliorations et d'audace dans les nouvelles versions.
__________________
Tous mes tutos (Java, PHP, SQL-Server, Hardware) - Mon blog anglais JTheque - Site - Forum |
|
|
00
|
|
|
#26 | |
|
Membre actif
![]() Inscription : juin 2008 Messages : 189 ![]() |
Citation:
Un NullPointerException ne me semble pas particulièrement moins grave qu'un OutOfMemoryException. Dans un système de plugin (par exemple pour du traitement d'images), il n'est pas improbable qu'il y ait un OutOfMemoryException, donc je ne vois pas particulièrement une raison de laisser passer un NullPointerException et pas un OutOfMemoryException. -> on catche tout, et s'il n'y a plus de mémoire, le reste de l'application se cartonnera plus tard (voir pas du tout si le plugin avait besoin de 500mo) |
|
|
|
00
|
|
|
#27 |
|
Membre Expert
![]() ![]() consultant/formateur Java SE Inscription : juillet 2006 Messages : 775 ![]() |
ah oui j'oubliais: un système d'adaptateur pour les annotations.
je vais essayer de m'expliquer: tu annotes ton code avec une annotation à toi puis tu découvres une librairie qui utilise ses propres annotations et qui fait avec des traitements plus interessants que les tiens ... donc tu modifies ton code ... que tu remodifies ensuite avec une librairie d'annotation encore plus sexy, etc. Autrefois (il y a bien longtemps oui on peut aussi friser le macro-processeur ... (certes ça a forcément des limites car on ne peut pas "traduire" n'importe quelle annotation en n'importe quelle autre) c'est idiot?
__________________
J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes! |
|
|
00
|
|
|
#28 |
|
Membre actif
![]() Inscription : juin 2008 Messages : 189 ![]() |
Avoir une implémentation native et rapide de Image#getScaledInstance avec l'option SMOOTH.
Ou bien encore mieux, avoir une nouvelle clef RenderingHints.VALUE_INTERPOLATION_SMOOTH car les autres clefs donnent des résultats certes rapides, mais totalement mauvaise en cas de downscaling sur des images avec des détails fins. |
|
|
00
|
|
|
#29 |
|
Invité de passage
![]() Sylvain Becuwe Inscription : janvier 2010 Messages : 4 ![]() |
Le switch de String, enfin ! Depuis le temps qu'on l'attendait celui là
|
|
|
00
|
|
|
#30 | |
|
Expert Confirmé Sénior
![]() ![]() |
Citation:
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir. |
|
|
|
00
|
|
|
#31 | ||||
|
Invité régulier
![]() Inscription : juillet 2002 Messages : 6 ![]() |
Citation:
Toute la différence réside dans la hiérarchie de classe. NullPointerException hérite de Exception tandis que OutOfMemoryError hérite de Error. J'en viens à la réflexion initiale de r1-1024 : Citation:
Voilà pourquoi il est fortement déconseillé de faire "catch(Throwable t)", cf.: http://checkstyle.sourceforge.net/co...l#IllegalCatch Seb. |
||||
|
|
00
|
|
|
#32 | ||||
|
Membre éclairé
![]() ![]() Inscription : janvier 2007 Messages : 371 ![]() |
Il peut arriver que l'on veuille obtenir à l'issue de l'exécution d'une fonction une exception à tous les coups trappable, pour des motifs spécifiques, en évitant deux écueils:
- Laisser remonter une exception que l'on ne pourrait pas traiter. (on peut admettre que l'on soit dans une section si critique qu'il faille vraiment détecter tout problème). - Renvoyer Exception soi-même. Car un public void maFonction throws Exception c'est presque ainsi que les malheurs de l'humanité on commencé. On perdrait toute précision d'incident pour la suite de la pile d'appel. Donc, dans ce cas on peut réaliser ceci: Code :
Code :
Moi, quand ça m'arrive de devoir faire ça, c'est tellement terrible que j'enlève mon nom d'auteur du source et je mets celui de mon voisin. Mais cela reste meilleur que le catch(Throwable t) {}, qui oublie tout. ou le throws Exception (ou throws Throwable, arghhh), qui mélange tout. Grunt. |
||||
|
|
00
|
|
|
#33 | ||
|
Membre Expert
![]() Jean-Bernard Inscription : mars 2007 Messages : 1 001 ![]() |
Citation:
Citation:
Certes, ça pose des problèmes de licences, et le démarrage d'une telle chose est un vrai casse-tête, mais ça serait tellement bien ! |
||
|
|
00
|
|
|
#34 | |||
|
Membre régulier
![]() Inscription : septembre 2008 Messages : 71 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#35 |
|
Membre à l'essai
![]() Stephane Inscription : juin 2005 Messages : 68 ![]() |
Je suis assez étonné que le switch(String) ait été ajouté.
Pour moi l'instruction switch doit se faire sur un type ordinal dont la taille est connue, cela permet d'optimiser les tests en découpant en table de saut en interne quand c'est possible. Faire un switch sur un String, je trouve ça plutot crado en fait... bien que pratique pour le code je reconnais. Venant du monde Delphi je trouvais la notion de propriété très intéressante, je suis assez surpris qu'elle n'existe toujours pas en java... est-il prévu de l'ajouter un jour ? ou cela est-il tout simplement impossible du fait des modifications que cela demanderaient ? J'ai vu aussi une discussion sur la possibilité de limiter le rattrapage de certaines erreurs que le "outOfMemory". Perso ça me gênerait bien de ne pas pouvoir rattraper cette erreur quand je le souhaite. Pas plus tard qu'hier j'ai du gérer le cas du outOfMemory sur un exemple tout bête : je dessine un masque pour une image, la taille du masque est complètement dynamique et peut dépasser celle de l'image de base, l'utilisateur peut la modifier simplement en dessinant en dehors des bordures actuelles... dans ce cas on peut arriver assez facilement à la limite mémoire de la JVM, j'ai donc fait un bête catch (Error) sur le redimensionnement du masque et en cas d'erreur on reste sur la dimension actuel et on affiche un message dans le log... Tout le problème est de bien faire son code ou non, je pense que trop d'assistance afin d'éviter le mauvais code peut juste conduire à certaines limitations et surtout ça ne fait pas progresser le développeur en général. |
|
|
00
|
|
|
#36 | |||
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 657 ![]() |
Citation:
Par contre je ne trouve pas du tout que cela soit crado : les solutions alternatives le sont bien plus je trouve :
Après tout une String est un des type les plus utilisé Citation:
Citation:
Par contre rattraper une OutOfMemory c'est pas top a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|||
|
00
|
|
|
#37 | |||
|
Membre à l'essai
![]() Stephane Inscription : juin 2005 Messages : 68 ![]() |
Citation:
Et quand je dis crado, je parle de ce qui se passe en interne (String reste un objet, avec une méthode equals()...), sur la syntaxe ça me pose aucun problème, au contraire même ! Citation:
Citation:
|
|||
|
|
00
|
|
|
#38 | |||||
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 657 ![]() |
Citation:
Par exemple, ceci : Code :
Code :
Mais on est quand même loin des gros if/else qui n'en finissent plus Ok je pensais que tu parlais d'une discussion officiel sur les listes de diffusion de Sun/Oracle à propos de l'avenir de Java... Parce que n'est pas fiable : rien ne dit que l'OutOfMemory surviendra bien au moment où tu demande beaucoup de mémoire. En clair lors du chargement de ton image tu pourrais occuper 99% de la mémoire, et cela fera planter une méthode anodine "autre part". a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|||||
|
00
|
|
|
#39 | ||
|
Membre à l'essai
![]() Stephane Inscription : juin 2005 Messages : 68 ![]() |
Citation:
Citation:
|
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com