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

Collection et Stream Java Discussion :

un tableau d'objets FINAL?


Sujet :

Collection et Stream Java

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 86
    Points
    86
    Par défaut un tableau d'objets FINAL?
    bonjour!
    Je voudrais savoir comment faire pour declarer un tableau de 10 objets Video(par ex.) de facon a ce que je ne puisse plus change les elements du tableau.

    si j'ecris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     final Video tableau = new Video[10];

    ensuite je ne peux pas faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableau = new Video[10];
    puisque le tableau est FINAL.

    Mais moi j'aimerais que l'on ne me laisse pas faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableau[0] = new Video();
    Comment faire?
    thanks.

  2. #2
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Il n'y a pas d'autre solution que d'encapsuler le tableau dans une classe et de prévoir un accesseur pour accéder aux éléments du tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class VideoArray {
      final private Video[] tableau;
     
      public VideoArray(Video[] tableau) {
        this.tableau = (Video[]) tableau.clone(); // éventuellement deep-copy
      }
     
      public Video get(int index) {
        return tableau[index];  
      }
    }

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 851
    Points : 22 863
    Points
    22 863
    Billets dans le blog
    51
    Par défaut
    Plus simple : utiliser une liste non-modifiable (les methode set, add, etc... levent des exceptions).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Toto[] myArray = ...
    List<Toto> myList = Collections.unmodifiableList(Arrays.asList(myArray));

Discussions similaires

  1. retour tableau d'objets par service web axis jboss
    Par TrollMaster dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 27/11/2005, 21h45
  2. Tableau d'objets
    Par moulefrite dans le forum MFC
    Réponses: 7
    Dernier message: 15/06/2004, 14h14
  3. Sauvegarde / Chargement d'un tableau d'objets
    Par Naruto dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2004, 14h34
  4. [VB6]Tableau d'objet withevents
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 13/02/2004, 19h44
  5. [VB6] [Syntaxe] Fonction renvoyant un tableau d'objets
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/10/2002, 15h33

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