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 :

Obtenir le nom d'une classe


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 4
    Par défaut Obtenir le nom d'une classe
    Bonjour,

    Je bloque sur un point. Je souhaierais créer une méthode static à ma classe A qui me retourne son nom de classe.
    Dans une instance je peux facilement faire :
    return this.getClass().getName();

    Mais l'equivalent dans une méthode static ou this n'est pas accessible ?

    Merci
    Sebastien

  2. #2
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par yapatchs
    Bonjour,

    Je bloque sur un point. Je souhaierais créer une méthode static à ma classe A qui me retourne son nom de classe.
    Dans une instance je peux facilement faire :
    return this.getClass().getName();

    Mais l'equivalent dans une méthode static ou this n'est pas accessible ?

    Merci
    Sebastien
    TaClass.class.getName();

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 4
    Par défaut
    Merci,
    Mais je crois que ce que je veux faire n'ai pas possible.
    En fait ma classe est une superClasse dont herite pas mal de classe. La dîte methode est dans la superClasse :

    A Ma superclasse
    B extends A

    Je voudrais faire B.uneMethodeStatic (Definie dans A)

    = uneMethodeStatic qui entre autre affiche B.className et nom A.className

    dur, dur

  4. #4
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par yapatchs
    Merci,
    Mais je crois que ce que je veux faire n'ai pas possible.
    En fait ma classe est une superClasse dont herite pas mal de classe. La dîte methode est dans la superClasse :

    A Ma superclasse
    B extends A

    Je voudrais faire B.uneMethodeStatic (Definie dans A)

    = uneMethodeStatic qui entre autre affiche B.className et nom A.className

    dur, dur
    Une méthode static n'est pas vraiment héritée (dans le sens où on ne peut pas la redéfinir), et celle appelée réellement est celle de A.

    Regarde du côté des singletons, ça pourrait t'aider (au lieu d'avoir une méthode statique, tu as une instance unique)...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 4
    Par défaut
    En fait il faudrait juste que je sj'arrice a savoir dans A, la classe fille à l'origine de l'appel

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 4
    Par défaut j'avance
    j'y suis presque.

    la derniere interrogation. Comment connaitre la classe appelante ?
    J'ai trouve un methode "bidouillle) en levant une excetion et en l'analysant mais il doit y avoir plud propre ?

  7. #7
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par yapatchs
    j'y suis presque.

    la derniere interrogation. Comment connaitre la classe appelante ?
    J'ai trouve un methode "bidouillle) en levant une excetion et en l'analysant mais il doit y avoir plud propre ?
    Tu ne peux pas connaître la classe appelante... à moins de la passer en paramètre...

    Tu peux expliquer dans quel cas tu as besoin de faire ça stp?

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 907
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 907
    Billets dans le blog
    54
    Par défaut
    La seule solution que je vois est de creer une exception et de parser sa trace (on peut stocker la trace dans un CharArrayWriter histoire de produire une String manipulable). Sinon il faut voir du cote des options de debuggages.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  9. #9
    Membre émérite Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Par défaut
    Citation Envoyé par yapatchs
    En fait il faudrait juste que je sj'arrice a savoir dans A, la classe fille à l'origine de l'appel
    Je dirais que si tu te pose cette question, c'est surement que tu as des problèmes de conception.

  10. #10
    Membre chevronné Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Par défaut
    Je comprends pas l'intéret d'accéder de manière statique à une telle méthode ???
    Si tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class A {
      public String getClassName() {
        return this.getClass().getName();
      }
    }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    class B extends A {
    }
    alors B héritera de la méthode de A et te retournera le nom de ta classe B, de la même manière que si dans B tu utilisais directement les méthodes qui vont bien ...


    En utilisant une méthode statique, il faudrait que tu fasses un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public static String getClassName(Object laClasse) {
      return laClass.getClass().getName();
    }

  11. #11
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    pour ta reponse, cf a la section reflexivité

Discussions similaires

  1. obtenir le nom de la classe dans une méthode static
    Par einboubou dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 13/11/2009, 16h46
  2. Comment obtenir dynamiquement le nom d'une classe ?
    Par cquilgars dans le forum C++
    Réponses: 5
    Dernier message: 27/06/2006, 23h37
  3. Réponses: 2
    Dernier message: 15/06/2006, 14h23
  4. [Débutant] Créer une instance avec le nom d'une classe
    Par Quetzalcoatl dans le forum Langage
    Réponses: 7
    Dernier message: 23/01/2006, 20h43
  5. Obtenir le nom d'une table impliquée dans une contrainte
    Par graphicsxp dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/01/2006, 18h19

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