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 :

initialiser constante tableau de String


Sujet :

Collection et Stream Java

  1. #1
    Membre averti Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Points : 312
    Points
    312
    Par défaut initialiser constante tableau de String
    Bonjour,

    j'ai une classe java à laquelle je souhaite ajouter une constante de type String[].

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    final public static String[] COLORS = new String[40];
    Etant donné que je souhaite accéder à cette constante de manière statique, comment faire pour remplir mon tableau de String dès la déclaration de la constante ? Existe-il une syntaxe particulère ?
    "Wash me away Clean your body of me Erase all the memories They'll only bring us pain And I've seen All i'll ever need"

  2. #2
    Membre confirmé
    Avatar de Glob
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Avril 2002
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Avril 2002
    Messages : 428
    Points : 630
    Points
    630
    Par défaut
    Hello.

    Peut-être en passant par l'initialiseur de classe (ou je sais pas comment on le nomme, mais bref);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class maClass {
      static String maVar = null;
      static {
        // bla bla
        maVar = ...;
      }
    }
    A+
    Glob
    What would you do if you were not afraid?

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  3. #3
    Membre averti Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Points : 312
    Points
    312
    Par défaut
    Mais oui bien sûr !

    J'avais complétement zappé cet initialiseur statique.J'ai testé ca fonctionne.

    Merci beaucoup et bonne journée
    "Wash me away Clean your body of me Erase all the memories They'll only bring us pain And I've seen All i'll ever need"

  4. #4
    Membre confirmé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Points : 645
    Points
    645
    Par défaut
    Personnellement, si les valeurs sont connues, je préfère utiliser ça, c'est plus joli et plus compréhensible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static final String[] VAR = {"blabla","ff"};
    Je sais que désormais vivre est un calembour,
    La mort est devenue un état permanent,
    Le monde est aux fantômes, aux hyènes et aux vautours.
    Moi je vous dis bravo et vive la mort.

  5. #5
    Membre averti Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Points : 312
    Points
    312
    Par défaut
    C'est plus "joli" oui mais est-ce mieux de le gérer de cette facon là, ou dans le constructeur statique comme le préconise Glob ?

    Si quelqu'un connaît la réponse... je prend
    "Wash me away Clean your body of me Erase all the memories They'll only bring us pain And I've seen All i'll ever need"

  6. #6
    Membre confirmé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Points : 645
    Points
    645
    Par défaut
    tout dépend, si tes valeurs sont par exemple "pouet" "machin" "chose" et "truc" autant le faire directement en une seule ligne

    par contre si c'est "truc1" "truc2" "truc3" et "truc4", utiliser un itérateur dans un bloc static n'est pas une mauvaise chose.
    Bon, là pour 4 éléments seulement je ferai quand même en une seule ligne. mais si il y en a plus ça peut être interressant

    juste pour comparer les 2 exemples :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static final String[] VAR = {"pouet", "machin" ,"chose", "truc"};
    me semble plus adapté que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public static final String[] VAR = new String[4];
    static {
      VAR[0]="pouet";
      VAR[1]="machin";
      VAR[2]="chose";
      VAR[3]="truc";
    }
    Par contre pour le 2eme,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public static final String[] VAR = new String[4];
    static{
      for(int i=o;i<VAR.length;i++){
        VAR[i] = "truc"+i;
      }
    }
    Me semble plus adapté (si il y avait bien plus que 4 trucs) que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static final String VAR = {"truc1", "truc2", "truc3", "truc4"};
    Je dirai plutôt que la meilleure façon de faire est celle qui demande moins de temps à écrire, tout en restant compréhensible quand on lit le code.

    Ensuite niveau performance, la forme en une ligne doit être un poil meilleure, mais ce doit être négligeable.
    Je sais que désormais vivre est un calembour,
    La mort est devenue un état permanent,
    Le monde est aux fantômes, aux hyènes et aux vautours.
    Moi je vous dis bravo et vive la mort.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Déclaration d'un tableau de string en constant
    Par megamario dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 20/12/2010, 07h37
  2. Probleme d'initialisation d'un tableau de String
    Par kodo dans le forum Struts 1
    Réponses: 3
    Dernier message: 04/04/2008, 11h28
  3. Ranger un tableau de String dans ma HashMap
    Par jeyce dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 26/08/2004, 22h41
  4. [Collections] Conversion de Vector en tableau de String
    Par java_math dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 06/06/2004, 12h55
  5. [Collections] Tableau de String
    Par gexti dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 02/06/2004, 15h42

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