![]() |
| |||||||
| S'inscrire | FAQ | Membres | Calendrier | Recherche | Messages du jour | Marquer les forums comme lus |
![]() |
| LinkBack | Outils de la discussion | Modes d'affichage |
| |||
| On 16 août, 20:43, Emmanuel Bourg <ebo...***apache.org> wrote: > ToOmS a écrit : > > > Bonjour, > > > Peut-on tester qu'une classe soit immuable ou non, SVP ? > > genre : assert Collections.isImmutable(productsList) : "la liste des > > produits n'est pas protégée"; > > > Merci d'avance ! > > Dans le cas d'une collection tu peux essayer d'y ajouter des élémentset > de voir si une UnsupportedOperationException est lancée. Par exemple : > > public boolean isModifiable(Collection c) { > *** *** ***try { > *** *** *** *** ***c.addAll(Collections.EMPTY_LIST); > *** *** *** *** ***return true; > *** *** ***} catch (UnsupportedOperationException e) { > *** *** *** *** ***return false; > *** *** ***} > > } Vérifiez également Arrays.asList cas (ils ne pouvaient pas grandir, mais ne sont pas immuables!). try { if(c instanceof List && false == c.isEmpty()) { List l = (List) c; l.set(0, l.get(0)); } else { c.addAll(Collections.EMPTY_LIST); } return true; } catch(UnsupportedOperationException e) { return false; } D'ailleurs, en ajoutant une liste vide n'est pas une proove que les collections est immuable: il pourrait ne pas lancer une exception dans tous les cas depuis la 2ème liste est vide. Vous pouvez essayer de cloner que la collecte et d'effectuer toutes les actions que vous voulez sur le clone. Vous pouvez vérifier "remove", "set" et "add" les méthodes contre de collecte cloné. Pouvez-vous fournir plus de détails sur la collecte du cycle de vie après cette vérification pour immutabilité, s’il vous plaît? Qu'est-ce que vous allez faire avec mutable collections et ce avec immuable? |
| | ||||
| ||||
| |
| |||
| acebanenco a écrit : > D'ailleurs, en ajoutant une liste vide n'est pas une proove que les > collections est immuable: il pourrait ne pas lancer une exception dans > tous les cas depuis la 2ème liste est vide. Les collections non modifiables créées par java.util.Collections.unmodifiableCollection(), unmodifiableList(), unmodifiableMap(), unmodifiableSet() et celles provenant de Commons Collections lancent toutes une UnsupportedOperationException en cas de modification, je pense que le test est suffisant. |
| |
| |
![]() |
| Tags: classe, immuable, quune, vrifier |
| Outils de la discussion | |
| Modes d'affichage | |
| |
| ||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Oui, la classe juridique est le même club idiot et criminel que la classe politique - quand même: | Michael Laudahn eOpposition | Newsgroup fr.soc.politique | 5 | 11/01/2008 23h41 |
| Classe contre classe : Eux (la poignée d'exploiteurs), ou nous la masse ! | wen.kroy | Newsgroup alt.fr.soc.politique | 0 | 16/09/2007 11h26 |
| Classe contre classe : Eux (la poignée d'exploiteurs), ou nous la masse ! | wen.kroy | Newsgroup alt.fr.politique.europe | 0 | 16/09/2007 11h22 |
| [GRUF] [INFO] : Règle No 2 (immuable) | R.Grufie | Newsgroup fr.rec.jeux.nomic | 4 | 14/08/2006 09h10 |
| [GRUF] [INFO] : Règle No 2 (immuable) | R.Grufie | Newsgroup fr.rec.humour.selection | 0 | 14/08/2006 02h58 |