Niouzes.org  

Précédent   Niouzes.org > Forum > Newsgroup fr.comp.lang.* Forum > Newsgroup fr.comp.lang.java
S'inscrire FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus



Réponse

 

LinkBack Outils de la discussion Modes d'affichage
  #1 (permalink)  
Vieux 18/08/2008, 06h57
acebanenco
 
Messages: n/a
Par défaut Re: vérifier qu'une classe est immuable

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?
Réponse avec citation
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Niouzes.org
Standard Sponsored Links

  #2 (permalink)  
Vieux 18/08/2008, 09h00
Emmanuel Bourg
 
Messages: n/a
Par défaut Re: vérifier qu'une classe est 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.
Réponse avec citation
 
Réponse
Tags: , , ,



Outils de la discussion
Modes d'affichage

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Discussions similaires

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


Fuseau horaire GMT. Il est actuellement 09h49.

Italiano - German - English - Español


Édité par : vBulletin® version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc. Tous droits réservés.
Version française #13 par l'association vBulletin francophone


Politique - Droit - Philosophie - Football - Medicine - Française - Bricolage - Photo - Mac Os X - Divers - Physique - Jardinage
Mecanique - Moto - Photographie - Rail - Route - Aviation - Cinema - Linux - Psychanalyse - Finance - Enigmes - Rugby
Environnement - Histoire - Programmes TV - Education - Travail - Voyages - Windows - Immobilier - Cuisine
Windows XP - Excel - Word - Outlook - Access - Internet Explorer - Office - Vista

Page generated in 0,29157 seconds with 11 queries