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

Langage Java Discussion :

Appeler une classe dans un autre package


Sujet :

Langage Java

  1. #1
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut Appeler une classe dans un autre package
    Bonjour

    J'ai un problème assez étrange. J'ai deux packages : communication et partie.
    Dans partie se trouve une classe DataJoueur et une autre Joueur, qui hérite de DataJoueur.
    Dans communication se trouve une classe Communication qui appelle la classe Joueur sans problème, elle est bien reconnue. Mais dans communication se trouve aussi une classe Server qui elle appelle DataJoueur mais là, j'ai une erreur comme quoi DataJoueur n'arrive pas à être trouvée...

    Pourtant, DataJoueur et Joueur sont toutes les deux déclarées en "public"... Comment ça se fait alors que depuis le même package, j'arrive à appeler Joueur mais pas DataJoueur ?

    Nas'

  2. #2
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    En ce cas les points à vérifier sont (liste non limitative) :
    • les déclarations package en début de fichier
    • et les déclarations import
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  3. #3
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Oui je dirais comme gifffftane..

    Et tu pourrais montrer ton code stp afin que l'on puisse t'aider.
    Je suppose que quand tui dis que ca plante c'est a la compilation ?
    Ta classe DataJoueur est-elle bien compilee ?

  4. #4
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Bonjour et merci pour vos réponses

    J'ai bien le "package" en début de fichiers pour les deux.
    Après, je pense que ma classe DataJoueur est compilée. J'utilise Eclipse pour mon projet qui contient les deux packages dont au moment de compiler, il doit tout compiler je pense. De toute façon, si elle n'était pas compilée, la classe Communication n'aurait pas pu accéder à la classe Joueur qui hérite de DataJoueur, enfin je pense que ça n'aurait pas été possible. Et j'ai bien un DataJoueur.class dans mon dossier "bin".

    Mon code c'est juste (résumé à l'extrême) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     package partie ;
     
    public class DataJoueur {
     // ...
    }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    package communication ;
    public class Server {
    List players = new ArrayList();
    players.add(new DataJoueur());
    // ...
    }
    et l'erreur que j'ai est indiquée directement dans l'onglet "Problems" d'Eclipse, avant même de vouloir lancer l'application (et donc la compiler) :
    DataJoueur cannot be resolved to a type
    Nas'

  5. #5
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    essaye ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    package communication ;
    import partie.DataJoueur;
    public class Server {
    List players = new ArrayList();
    players.add(new DataJoueur());
    // ...
    }
    Je ne suis pas mort, j'ai du travail !

  6. #6
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Oui effectivement, si tu ne fais l'import d une classe que tu veux utiliser ca ne peut pas marcher.
    D'ailleurs dans Eclipse, il doit te le dire ! Et souvent il te propose de te realiser les imports "manquants" quand tu clique sur la petite croix rouge

  7. #7
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Merci ça résoud mon problème effectivement. Mais alors pourquoi j'ai réussi à appeler la classe Joueur sans faire de import partie.joueur ?

    Bon, c'est cool d'avoir résolu ce problème maintenant. Je vais pouvoir aller rider au skatepark en me disant qu'en rentrant, je pourrais continuer tranquillement mon projet
    Merci encore.

    EDIT : et bien, Eclipse a dû m'ajouter automatiquement l'import vers Joueur car il figure bien dans la liste des imports dans le fichier Communication.java ... Bizarre qu'Eclipse n'ait pas fait de même pour DataJoueur. Enfin...

    Nas'

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/01/2013, 08h04
  2. Réponses: 1
    Dernier message: 01/06/2009, 10h56
  3. Appel d'une classe dans un autre répertoire
    Par frites.saucisse dans le forum Général Python
    Réponses: 2
    Dernier message: 08/07/2008, 16h05
  4. Utilisation d'une classe dans un autre fichier
    Par melotron dans le forum Général Python
    Réponses: 1
    Dernier message: 09/07/2006, 13h11
  5. Appeler une fonction dans un autre cadre !
    Par rich25200 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/11/2005, 13h01

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