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

NetBeans Java Discussion :

Du non static context au static context


Sujet :

NetBeans Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut Du non static context au static context
    bonjour,

    J'ai toujours des difficultés avec le contexte static
    J'ai rayé ce mot de mes déclarations
    suite à un précédent post j'ai mis mes constantes dans un classe dédiée
    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
     
    public class Constantes
        {
            public  final int MAX_LOOPS = 25;
            public  final String OPTION_SECTION_CCHUNKER  = "CCHUNKER";
            public  final String OPTION_KEYNAME_VERB_FRENCH = "VERB_FRENCH";
            public  final String OPTION_KEYNAME_NOUN_FRENCH = "NOUN_FRENCH";
            public  final String OPTION_KEYNAME_PRESTOPPER_FRENCH = "PRESTOPPER_FRENCH";
            public  final String OPTION_KEYNAME_POSTSTOPPER_FRENCH = "POSTSTOPPER_FRENCH";
            public  final String OPTION_KEYNAME_FUNCT_FRENCH= "FUNCT_FRENCH";
            public  final String OPTION_KEYNAME_LEMMA_NON_STOPPER_FRENCH = "LEMMA_NON_STOPPER_FRENCH";
            public  final String OPTION_KEYNAME_VERB_ENGLISH = "VERB_ENGLISH";
            public  final String OPTION_KEYNAME_NOUN_ENGLISH = "NOUN_ENGLISH";
            public  final String OPTION_KEYNAME_PRESTOPPER_ENGLISH = "PRESTOPPER_ENGLISH";
            public  final String OPTION_KEYNAME_POSTSTOPPER_ENGLISH = "POSTSTOPPER_ENGLISH";
            public  final String OPTION_KEYNAME_FUNCT_ENGLISH = "FUNCT_ENGLISH";
            public  final String OPTION_KEYNAME_LEMMA_STOPPER_ENGLISH = "LEMMA_STOPPER_ENGLISH";
            public  final String OPTION_KEYNAME_VERB_SPANISH = "VERB_SPANISH";
            public  final String OPTION_KEYNAME_NOUN_SPANISH = "NOUN_SPANISH";
            public  final String OPTION_KEYNAME_PRESTOPPER_SPANISH = "PRESTOPPER_SPANISH";
            public  final String OPTION_KEYNAME_POSTSTOPPER_SPANISH = "POSTSTOPPER_SPANISH";
            public  final String OPTION_KEYNAME_FUNCT_SPANISH = "FUNCT_SPANISH";
            public  final String OPTION_KEYNAME_LEMMA_NON_STOPPER_SPANISH = "LEMMA_NON_STOPPER_SPANISH";
            public  final String OPTION_KEYNAME_VERB_ITALIAN = "VERB_ITALIAN";
            public  final String OPTION_KEYNAME_NOUN_ITALIAN = "NOUN_ITALIAN";
            public  final String OPTION_KEYNAME_PRESTOPPER_ITALIAN = "PRESTOPPER_ITALIAN";
            public  final String OPTION_KEYNAME_POSTSTOPPER_ITALIAN = "POSTSTOPPER_ITALIAN";
            public  final String OPTION_KEYNAME_FUNCT_ITALIAN = "FUNCT_ITALIAN";
            public  final String OPTION_KEYNAME_LEMMA_NON_STOPPER_ITALIAN = "LEMMA_NON_STOPPER_ITALIAN";
            public  final String OPTION_KEYNAME_VERB_GERMAN = "VERB_GERMAN";
            public  final String OPTION_KEYNAME_NOUN_GERMAN = "NOUN_GERMAN";
            public  final String OPTION_KEYNAME_PRESTOPPER_GERMAN = "PRESTOPPER_GERMAN";
            public  final String OPTION_KEYNAME_POSTSTOPPER_GERMAN = "POSTSTOPPER_GERMAN";
            public  final String OPTION_KEYNAME_FUNCT_GERMAN = "FUNCT_GERMAN";
            public  final String OPTION_KEYNAME_LEMMA_NON_STOPPER_GERMAN = "LEMMA_NON_STOPPER_GERMAN";
        }
    mais là NetBeans n'aime pas et me dit: non-static variable OPTION_SECTION_CCHUNKER cannot be referenced from a static context

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(GetStringList(Constantes.OPTION_SECTION_CCHUNKER,Constantes.OPTION_KEYNAME_VERB_FRENCH, wsListPosVerb ,wsListPosVerb)!= 0){m_bOptionProblem = true;}
    est ce le fait d'appeler la constante au travers du nom de la classe qui pose le pb?

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    soit vous mettez static dans vos déclaration, soit il faudra une instance de Constantes pour pouvoir y accéder.

  3. #3
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut il faut bien du static
    bonjour,
    J'ai donc mis les déclarations en static.
    Il faut dans ce cas qu'on adresse les objets constantes référencés au travers du nom de la classe Constantes dans notre cas.
    Mais alors il faut que les méthode qui appellent soient adressées au travers d'une variable locale qui doit être initialisée sur la classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(pOption.GetStringList(Constantes.OPTION_SECTION_CCHUNKER,Constantes.OPTION_KEYNAME_VERB_FRENCH, wsListPosVerb ,wsListPosVerb)!= 0){m_bOptionProblem = true;}
    comme la classe est une interface, elle n'accepte pas le new
    comment initialiser pOption?
    doit on requérir un mécanisme de classforname

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par JeanNoel53 Voir le message
    Mais alors il faut que les méthode qui appellent soient adressées au travers d'une variable locale qui doit être initialisée sur la classe

    comme la classe est une interface, elle n'accepte pas le new
    comment initialiser pOption?
    doit on requérir un mécanisme de classforname
    Je n'ai rien compris à ce que vous dites et on ignore ce qu'est pOptions!

  5. #5
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 817
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 817
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Je n'ai rien compris à ce que vous dites et on ignore ce qu'est pOptions!
    +1, mais à force on s'y fait!

    une classe ne peut pas être une interface. Une classe est une classe, une interface est une interface. Si vous voulez initialiser quelque chose, ça sera un objet, appartenant à une classe, implémentant une interface.

    Donc vous suivez les procédures java, et ça fonctionnera tout seul. Une classe, qui implémente votre interface, avec un constructeur qui va bien, et vous instanciez votre objet comme il se doit.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  6. #6
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut la déclaration et le status
    Bonjour,
    J'ai réessayé un new comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Option pOption = new Option();
    et le compilateur me renvoie Linguistic.Option is abstract; cannot be instantiated
    à+

  7. #7
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 817
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 817
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    public class cePos implements CPOS
    Citation Envoyé par plegat Voir le message
    Une classe, qui implémente votre interface
    Y'a des fois, je me demande si ça vaut la peine de faire des phrases avec les mots adéquats...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

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

Discussions similaires

  1. [PHP 5.3] Late static binding avec static function et implements
    Par rawsrc dans le forum Langage
    Réponses: 12
    Dernier message: 16/04/2010, 16h53
  2. static or not static, là est la question
    Par rtg57 dans le forum Langage
    Réponses: 5
    Dernier message: 09/04/2010, 14h30
  3. portée variable static java entre 2 contextes
    Par c+cool dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 20/04/2009, 09h57
  4. [Context]Changer le contexte
    Par GLDavid dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 11/07/2007, 15h55
  5. [Context] définir un contexte complexe
    Par GLDavid dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 03/07/2006, 10h53

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