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

API standards et tierces Java Discussion :

[Reflection] Retrouver une methode avec des parametres primitifs


Sujet :

API standards et tierces Java

  1. #1
    Membre averti
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Points : 334
    Points
    334
    Par défaut [Reflection] Retrouver une methode avec des parametres primitifs
    Est-ce que quelqu'un pourrait m'expliquer pourquoi cet appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ResultSet.class.getMethod("getString", Integer.class);
    me lance une NoSuchMethodException alors que cet appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ResultSet.class.getMethod("getString", String.class);
    ne pose aucun probleme.

    Je precise que je travaille sous Java 5, et que donc getMethod a pour signature :
    public Method getMethod(String name, Class... parameterTypes)
    throws NoSuchMethodException, SecurityException

  2. #2
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Essaye ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ResultSet.class.getMethod("getString", int.class);
    Oui, on peut faire un .class sur les types primitifs ;-)

  3. #3
    Membre averti
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Points : 334
    Points
    334
    Par défaut
    Incroyable ! J'ai meme pas ose essayer ! Comme quoi on en apprend tous les jours. Merci bicou missiou !

  4. #4
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par Gfx
    Oui, on peut faire un .class sur les types primitifs ;-)
    balèze !

    mais avec l'autoboxing ça aurait pas du se faire tout seul ?

    Integer.class != int.class ?


  5. #5
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Oui, car l'autoboxing peut faire unInteger.intValue() ou new Integer(monInt) mais il ne sait pas faire transformer le Class<Integer> en Class<int> (notons que cette ecriture est interdite mais je l'utilise pour clarifier Et c'est chose heureuse d'ailleurs car ces deux types ont bel et bien des classes differentes.

  6. #6
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    Question : les classes des types primitifs se trouvent où?

    (j'ai pas cherché parce que le topic traitent du sujet... je suis peut-être trop fénéant?...)

  7. #7
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Reponse : nulle part. C'est une mecanisme interne a la JVM qui permet notamment de faire marcher la reflection sans probleme avec les types primitifs. Si tu tapes System.out.println(int.class) ca affichera "int".

  8. #8
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par pollux007
    Question : les classes des types primitifs se trouvent où?
    Les types primitifs ne sont pas des classes... même si elles ont une instance de Class qui les représente...

    Cette instance est présente dans la classe Wrapper associé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int.class == Integer.TYPE
    Alors que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int.class != Integer.class
    a++

  9. #9
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Hum hum (je m'eclaircis la voix): LA FAQ ...

    Pfiou ya des jours on ferait mieux de rester couche.

    http://java.developpez.com/faq/java/...tifsReflection

    Bulbo

  10. #10
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    Comme je l'ai dit on traitait du sujet alors j'en ai profité

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

Discussions similaires

  1. binder une methode avec des parametres
    Par vdaanen dans le forum Boost
    Réponses: 4
    Dernier message: 24/05/2012, 08h46
  2. appel d'une servlet avec des parametres
    Par Mickael Scofild dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 13/08/2007, 11h23
  3. Réponses: 3
    Dernier message: 09/08/2006, 11h58
  4. Réponses: 8
    Dernier message: 02/02/2006, 18h13

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