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 :

nom de classe static


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de djidane39
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Par défaut nom de classe static
    Bonsoir,
    j'aimerai pourvoir obtenir le nom de la class courante, genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.getClass().getName()
    mais qui marche aussi pour les fonctions static.
    J'ai regardé dans la faq sur l'introspection, mais j'ai pas trouvé la réponse pour les fonctions static -_-'
    http://ricky81.developpez.com/tutori...flection/#L3.1

    sinon ya moyen d'obtenir que le nom de la classe? Car this.getClass().getName() retourne le chemin du package.NomClasse....

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Par défaut
    Il faut obtenir la liste des methodes, avec getDeclaredMethods et verifier via getModifiers si la methode est static ou non.

    Pour le nom de la classe seulement, c'est getSimpleName()

  3. #3
    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,

    Citation Envoyé par djidane39 Voir le message
    J'ai regardé dans la faq sur l'introspection, mais j'ai pas trouvé la réponse pour les fonctions static -_-'
    Non : il n'y a pas de "vrai" moyen pour savoir dans quel méthode on se trouve.
    La seule solution serait d'analyser le stacktrace, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StackTraceElement[] stack = new Throwable().getStackTrace();
    Ou alors à partir de Java 5.0 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StackTraceElement[] stack = Thread.currentThread().getStackTrace();
    (les deux méthodes sont équivalente)

    Mais la génération de ce stacktrace a un certain coût qui peut plomber les performance si cela était exécuté trop souvent...


    Citation Envoyé par djidane39 Voir le message
    sinon ya moyen d'obtenir que le nom de la classe? Car this.getClass().getName() retourne le chemin du package.NomClasse....
    Avec Java 5.0 : getSimpleName()
    Sinon il suffit de faire un substring à partir du dernier point

    a++

  4. #4
    Membre expérimenté Avatar de djidane39
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Par défaut
    sinon j'ai trouver un autre moyen pour les classes static:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaClassStatic.class.getName()

  5. #5
    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
    Citation Envoyé par djidane39 Voir le message
    sinon j'ai trouver un autre moyen pour les classes static:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaClassStatic.class.getName()
    Oups oui en effet j'avais mal compris ta question je pensais que tu voulais le nom de la méthode


    a++

  6. #6
    Membre expérimenté Avatar de djidane39
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Oups oui en effet j'avais mal compris ta question je pensais que tu voulais le nom de la méthode


    a++
    c'est pas grave lol, car j'allais justement la poser cette question -_-' donc merci ^_^

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/01/2007, 05h46
  2. [Info] variable d'une classe static
    Par romdelf dans le forum Langage
    Réponses: 21
    Dernier message: 06/12/2005, 15h08
  3. Pb accès entre 2 classes static
    Par d.w.d dans le forum C++
    Réponses: 5
    Dernier message: 23/02/2005, 19h05
  4. Passer un text comme un nom de classe
    Par marie253 dans le forum Langage
    Réponses: 5
    Dernier message: 19/07/2004, 11h22
  5. [Chargement de classe][noms de classe relatifs]
    Par freudy dans le forum Langage
    Réponses: 5
    Dernier message: 21/04/2004, 11h36

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