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

avec Java Discussion :

question sur les variables static


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Par défaut question sur les variables static
    J'ai une constante qui correspond à l'adresse d'un répertoire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	private static final String DICTIONNAIRES = "./"+"Ressources"+File.separator+
    	"dictionnaires"+File.separator+"dictionnaires";
    J'utilise cette constante dans le constructeur de ma classe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    /**
     * Constructeur
     */
    public I18n(){
    	currentLanguage=Langue.ANGLAIS;
     
    // Ressource locale
    messages=ResourceBundle.getBundle(DICTIONNAIRES ,currentLanguage.getLocale());
    }
    Mon problème est que ma constante est nulle et qu'elle a sa vraie valeur si j'enlève le fait qu'elle soit static.


    J'avoue que je comprend pas ce qu'il se passe.

    Si quelqu'un peut m'expliquer...

    Merci

    Laurent

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Désolé mais cela ne correspond pas au même attribut :
    • REPERTOIRE_DICTIONNAIRE
    • repertoireDictionnaire



    a++

  3. #3
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Par défaut
    Je me suis trompé dans mon post

    Il s'agit bien du même attribut, je viens d'ailleurs de corriger mon post

  4. #4
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    euh ???? et c'est quoi un "string" (avec un petit s)

  5. #5
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Par défaut
    C'est moi qui suis pas capable de recopier correctement une ligne de code sans faire 3000 erreurs....

    Je pense que la j'ai enfin correctement recopier mon code.

    Désolé...

    Je recopie toute ma classe directement ca m'évitera de faire d'autres erreurs
    en recopiant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    package coeur;
     
     
    import java.io.File;
    import java.util.ResourceBundle;
     
    import enumerations.Enumerations.Langue;
     
    /**
     * Classe gérant l'internationnalisation
     * @author ZEGGWAGH_L
     *
     */
     
    public class I18n  {
     
    	private static final I18n instance = new I18n();
    	private static final String DICTIONNAIRES = "./"+"Ressources"+File.separator+
    	"dictionnaires"+File.separator+"dictionnaires";
     
    	// La locale utilisée (la langue actuellement utilisée)
    	private static Langue currentLanguage;
     
    	// Ressource locale
    	private static ResourceBundle messages;
     
    	/**
             * Constructeur
             */
    	public I18n(){
     
    		// Langue courante
    		currentLanguage=Langue.ANGLAIS;
     
    		// Ressource locale
    		System.out.println("./"+"Ressources"+File.separator+
    				"dictionnaires"+File.separator+"dictionnaires");
    		System.out.println(DICTIONNAIRES);
    		messages=ResourceBundle.getBundle(DICTIONNAIRES,currentLanguage.getLocale());
    	}
     
    	 /**
             * Retourne l'instance unique de I18n.
             *
             * @return L'instance unique de I18n.
             */
    	 public static I18n getInstance() {
    		 return instance;
    	 }
     
     
    	/**
             * Renvoi le texte correspond dans la langue choisi
             * @param text texte que l'on veut
             **/
    	public String getLocalizedText(String text)
    	{
    		return messages.getString(text);
    	}
     
    	/**
             * Cette fonction sert à changer de langue
             * @param Langue la nouvelle langue
             **/
    	public void setLangue(Langue langue)
    	{
    		currentLanguage=langue;
     
    		// Ressource locale
    		messages=ResourceBundle.getBundle(DICTIONNAIRES,currentLanguage.getLocale());
    	}
     
    	/**
             *Retourne la langue actuelle
             *@return la langue actuelle
             **/
    	public Langue getCurrentLanguage()
    	{
    		return currentLanguage;
    	}
     
     
     
    }

  6. #6
    Membre chevronné Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Par défaut
    1. C'est dommage de commencer par "./" et ensuite d'utiliser File.separator

    2. Pourquoi mettre dans le constructeur : currentLanguage=Langue.ANGLAIS;

    3. Je ne vois aucune raison que ca ne fonctionne pas. Les blocs static sont exécutés en amont.

    Sinon essaye pour voir :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public class I18n  {
     
    	private static final String DICTIONNAIRES = '.'+File.separator+"Ressources"+File.separator+
    	"dictionnaires"+File.separator+"dictionnaires";
     
    	// La locale utilisée (la langue actuellement utilisée)
    	private static Langue currentLanguage = Langue.ANGLAIS;
     
    	// Ressource locale
    	private static ResourceBundle messages = ResourceBundle.getBundle(DICTIONNAIRES,currentLanguage.getLocale());
     
     
     
    // Tout à la fin
    private static final I18n instance = new I18n();
    ....


    Ce qui pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static final I18n instance = new I18n();
    Il faut le mettre à la fin des déclaration des champs static !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/10/2006, 22h12
  2. Question sur les variables passées par URL
    Par cotlod dans le forum Langage
    Réponses: 7
    Dernier message: 11/10/2006, 00h04
  3. [TP] Question sur les variables
    Par argon dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 16/02/2006, 07h27
  4. [Static] nouvelle question sur les blocs static
    Par Alec6 dans le forum Langage
    Réponses: 2
    Dernier message: 25/11/2004, 18h09
  5. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59

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