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 :

Expliciter un appel static


Sujet :

avec Java

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 93
    Points : 90
    Points
    90
    Par défaut Expliciter un appel static
    Bonsoir

    Voila j'ai eu un petit soucis lors du développement d'une petite application en java.
    J'ai trouvé des solutions pour m'en sortir mais pas de réponse sur la faisabilité d'une solution que j'aimerais faire
    Je n'ai malheureusement rien trouvé sur google ou avec la fonction rechercher me disant si ce que je veux est possible ou non?

    Plus précisément mon problème est :
    J'ai une classe "coups" dans laquelle j'ai défini un tableau static alphabet.
    J'ai également une classe "plateau" ayant un "ArrayList<coups> coups"...
    Du coup quand je souhaite faire un appel static à alphabet je devrais normalement écrire "coups.alphabet" mais du coup le compilo ne sais pas à quel à coups je fais appel et je prend
    Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    coups.alphabet cannot be resolved or is not a field

    Qu'à cela ne tienne il me suffit d'expliciter que je veux faire un appel static, sauf que voila, je ne sais pas comment faire

    Expliciter un appel local j'aurais fait "this.coups " mais là je ne sais pas .

    Bon je me sort en instanciant un objet coups avant (heureusement que c'est pas une classe abstraite) et j'appelle par cette objet (ouai je sais c'est moche )

    Petit bonus : Eclipse détecte que je devrais faire un appel static et du coup me mets un warning, si j'applique la correction qu'il me propose
    "coups.alphabet" le code ne marche plus . Ça vaut le coup de proposer une solution pour passer d'un code qui marche à un truc qui marche plus


    Donc oui, oui je nomme mal mes variables et en ajoutant par exemple des majuscule au classe je pense que le problème disparaitrait mais n'empêche que je ne sais pas répondre à ma question

    Pour info je développe sous eclipse et les erreurs sont celle sans avoir forcément compilé mais indiqué par eclispe

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

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Points : 305
    Points
    305
    Par défaut
    Donc oui, oui je nomme mal mes variables et en ajoutant par exemple des majuscule au classe je pense que le problème disparaitrait
    Bah oué tout est la !

    Pour le compilateur coups c'est l'ArrayList pas la classe !

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 93
    Points : 90
    Points
    90
    Par défaut
    merci pour ta réponse
    j'ai bien compris le problème, et la solution classique
    mais j'ai posé cette question car j'aimerais savoir s'il y a un moyen de lui dire que je veux qu'il cherche coups comme une classe
    (ouai je suis têtu et puis surtout j'ai la flemme de renommer toutes mes classe )

    Il n'existe peut être pas de solution mais du coups je ne sais pas ou trouver cette information

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

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Points : 305
    Points
    305
    Par défaut
    Bah renomme la List ! (ALT+SHIFT+R sous Eclipse => 2s)


    Des classes sans la premieres lettres en maj

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 93
    Points : 90
    Points
    90
    Par défaut
    oh oui fesse moi
    bon je présume que ta reponse confirme mon avis, c'est impossible...

    Y a moyen de renommer automatiquement les classes et non pas les attributs?

  6. #6
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    Sous netBeans : click droit sur ta classe -> Rename
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Points : 295
    Points
    295
    Par défaut
    bah si c'est possible

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import java.util.ArrayList;
    import aa.bb.cc.coups;
    public class AL {
    	public ArrayList<coups> coups= null;
    	public void rr(){
    		String tutu = aa.bb.cc.coups.alphabet;
     
    	}
    }
    C'est bien ça que tu cherches à faire non ?

  8. #8
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Oui, un appel statique sera toujours possible, mais il vaut mieux prendre les bonnes habitudes et renommer sa classe

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Points : 295
    Points
    295
    Par défaut
    Citation Envoyé par Deaf Voir le message
    Oui, un appel statique sera toujours possible, mais il vaut mieux prendre les bonnes habitudes et renommer sa classe
    tout à fait d'accord

    Mon exemple est un cas typique de ce qu'il ne faut PAS faire dans les règles de nommage

  10. #10
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 93
    Points : 90
    Points
    90
    Par défaut
    Bonjour
    merci pour ces réponses

    Justement à propos de ton exemple LittleBean pourrais-tu m'expliquer ton "aa.bb.cc"

    Car j'avais justement essayé dans ma classe plateau de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     import coups;
    // ou bien
    import coups.alphabet;
    Mais j'ai eu comme erreur que le compilateur n'arrivait pas non plus à résoudre l'import

  11. #11
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    C'est lié au package :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    import aa.bb.cc.coups;
    Si tu lui explicites le package, il le reconnait et du coup il sait que tu parles de la classe, et pas de l'instance.

  12. #12
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 93
    Points : 90
    Points
    90
    Par défaut
    D'accord et sachant que je n'ai pas fait de package, que j'ai tout laissé dans le dossier d'origine "src" sous eclipse
    Je dois mettre quoi?

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Points : 295
    Points
    295
    Par défaut
    Voila
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class AL {
     
    	public ArrayList<coups> coups= null;
     
     
    	public void rr(){
    		String tutu = new coups().alphabet;
    	}
     
    }
    par contre utiliser le package par défaut :

  14. #14
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 93
    Points : 90
    Points
    90
    Par défaut

    Je dois mal lire mais je vois un new
    Utiliser un new reviens bien à instancier la classe non?
    Ce n'est donc plus un appel static

    (o oui fesse moi, surtout que je sais même pas faire un package )

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

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Points : 305
    Points
    305
    Par défaut
    Faut dire la tu cumules Mais bon tu le fait exprès et l'exercice est sympa donc ca va

  16. #16
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 93
    Points : 90
    Points
    90
    Par défaut

    C'est justement ce cumul qui fait que je n'ai pas réussi à trouver de solution à mon problème autre de faire un new

    Ça aura l'avantage de m'avoir fait comprendre l'intérêt de ces normes de nomenclatures

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/03/2015, 19h27
  2. appel static/non static
    Par greg08 dans le forum Langage
    Réponses: 3
    Dernier message: 27/11/2008, 10h25
  3. Qu'est ce qu'un appel Static ?
    Par foolib dans le forum Langage
    Réponses: 3
    Dernier message: 30/07/2008, 15h56
  4. Réponses: 13
    Dernier message: 15/11/2005, 15h47
  5. Débutante - Pb appel méthode static
    Par nmetais dans le forum Langage
    Réponses: 2
    Dernier message: 23/09/2005, 17h23

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