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 :

Savoir si un objet est d'un type primitif


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Par défaut Savoir si un objet est d'un type primitif
    Hello,

    Si j'ai un Object o, recupéré lors d'une désérialisation, je test si c'est un tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(o.getClass().isArray()){
    Comment je peux faire pour savoir si ce tableau est composé d'éléments d'un type primitif? par exemple déclaré comme int[], byte[][], short[], ... (contairement à Integer[], Byte[][], Short[]) ?!?

    J'ai fait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     if(o.getClass().isArray()){
      if(o.getClass().equals(byte[].class) ||
         o.getClass().equals(short[].class) ||
         o.getClass().equals(int[].class) ||
         o.getClass().equals(long[].class) ||
         o.getClass().equals(float[].class) ||
         o.getClass().equals(double[].class)){
              content = content + "<do not use primitive type for arrays>";
       }
    }
    Mais ca ne fonctionne que pour une dimension, forcément... Comment faire un code générique?

    Merci d'avance!

    A+

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Par défaut
    il y a une méthode isPrimitive() dans la classe Class

    oups c pas ta question

    sinon pourquoi ne pas faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Object p = ... ;
     
    while p.isarray() {
    p = p[0];
    }
    p.isPrimitive();

  3. #3
    Membre éclairé Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Par défaut
    Ca marche pour les tableaux?

    Genre si je fais cette méthode sur un int[][], ca va me retourner vrai?

    A+

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2003
    Messages : 10
    Par défaut
    Ceci marche pour les tableaux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Object o = new byte[5][4][5];
     
    Class c = o.getClass();
    while (c.isArray()) {
    	c = c.getComponentType();
    }
    System.out.println(c.isPrimitive());

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

Discussions similaires

  1. [MySQL] savoir si l'objet est dans une table
    Par jbquentin dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 02/06/2013, 10h21
  2. comment savoir si un objet est sélectionné ?
    Par fran.duch dans le forum VBA PowerPoint
    Réponses: 0
    Dernier message: 22/06/2012, 16h01
  3. comment savoir si un objet est itérable ?
    Par DonKnacki dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 25/07/2009, 21h13
  4. Comment savoir qu'un objet est delete
    Par yupa dans le forum C++
    Réponses: 11
    Dernier message: 25/10/2007, 17h04
  5. Réponses: 2
    Dernier message: 21/04/2007, 16h13

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