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 :

Classes enveloppes en Java


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Par défaut Classes enveloppes en Java
    Bonjour,

    en java, il y a les types primitifs et les classes enveloppes.
    Pour savoir si un objet est de type primitif, on peut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Object value = ... ;
    if (value.getClass().isPrimitive()) {
             ...
    }
    J'aimerais savoir s'il existe des méthodes semblables en Java permettant de tester si un objet est une classe enveloppe ?

    Merci de votre aide.

  2. #2
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 4
    Par défaut
    Bonjour,

    Les primitives Java ne sont pas des objets mais des types de base (int, float ...) qui ne possèdent aucune méthode et qui peuvent être manipulés à l'aide des classes enveloppes (Integer, Float, ...).
    A mon avis, la méthode isPrimitive() de Class te dit si la classe est une classe enveloppe c'est à dire si un objet de cette classe contient une primitive.

  3. #3
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Citation Envoyé par fourmirouge
    A mon avis, la méthode isPrimitive() de Class te dit si la classe est une classe enveloppe c'est à dire si un objet de cette classe contient une primitive.
    Faux... Les primitives int, float... ont une classe en java, même si ce ne sont pas des objets: respectivement les constances de type "Class" Integer.TYPE, Float.TYPE... Ces types sont surtout utilisés lorsqu'on fait de la réflexivité en java

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    System.out.println(Integer.class.isPrimitive()); // false
    System.out.println(Integer.TYPE.isPrimitive()); // true
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Par défaut
    Merci pour la réponse.

    J'ai trouvé la solution:

    en fait, je voulais pouvoir distinguer par exemple les int et les Integer.
    En faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    System.out.println(int.class.isPrimitive());
    System.out.println(Integer.class.isPrimitive());
    J'obtiens :
    En effet, "int" est de type primitif donc cela renvoie "true".
    Les classes enveloppes numériques (Integer par exemple) étendent la classe Number. Il suffit donc de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Objet value = ... ;
    if (value.getClass().getSuperclass().equals(Number.class)) {
           // classe enveloppe
    }
    Bonne continuation !

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

Discussions similaires

  1. Classe Pair de Java
    Par GDMINFO dans le forum Langage
    Réponses: 3
    Dernier message: 11/04/2007, 10h36
  2. Importer un *.class sans le *.java dans un projet.
    Par Agent22 dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 15/09/2006, 17h00
  3. Classe INET et Java...
    Par Julien_riquelme dans le forum VBScript
    Réponses: 2
    Dernier message: 10/05/2006, 08h44
  4. [Soundex] Class soundex en java
    Par shaun_the_sheep dans le forum Multimédia
    Réponses: 8
    Dernier message: 24/01/2006, 14h45

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