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 :

tester la classe d'un objet null


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de Aurelien Pupier
    Homme Profil pro
    Senior Software Engineer
    Inscrit en
    Décembre 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Senior Software Engineer

    Informations forums :
    Inscription : Décembre 2007
    Messages : 278
    Par défaut tester la classe d'un objet null
    Bonjour,

    je voudrais savoir comment tester la classe d'un objet null?

    Quand un objet n'est pas null :
    monObjet instanceof maClasse

    mais par convention instanceof renvoit false si monObjet est null..

    merci d'avance

  2. #2
    Membre expérimenté

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 215
    Par défaut
    sans vouloir dire une bêtise (ça m'arrive )... tant que tu n'as pas réellement créé l'objet (avec "new"), ton programme ne peut pas savoir si l'objet sera de la classe de base, ou d'une classe héritée.

    InstanceOf, comme son nom l'indique, concerne l'instance (l'objet), elle doit donc être créée. Si tu veux connaître la classe de la variable pointant vers l'instance, il faut chercher autre chose (typeof ?).

  3. #3
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 17
    Par défaut
    Salut,

    Je crois qu'il faudrait préciser ce que tu cherches à faire, déterminer le contexte, il y'a sûrement un moyen de le réaliser autrement que comme tu le demandes (ce qui n'est pas possible à mon avis).


    ++

  4. #4
    Membre chevronné Avatar de Aurelien Pupier
    Homme Profil pro
    Senior Software Engineer
    Inscrit en
    Décembre 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Senior Software Engineer

    Informations forums :
    Inscription : Décembre 2007
    Messages : 278
    Par défaut
    C'est exactement une sorte de typeof que je veux...

  5. #5
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 17
    Par défaut
    Si ton objet est à null, c'est tout simplement IMPOSSIBLE.

    Le seul truc possible que je vois, c'est de créer ta propre table de correspondance et donc d'enregistrer dedans toutes les variables que tu crées.

    genre:

    HashMap<Object, Class<?>> register....

    Et du coup après, tu te fais une méthode utilitaire qui appelle register.get(variable) et tu testes avec la classe obtenue....

    Ca reste très crade....

  6. #6
    Membre chevronné Avatar de Aurelien Pupier
    Homme Profil pro
    Senior Software Engineer
    Inscrit en
    Décembre 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Senior Software Engineer

    Informations forums :
    Inscription : Décembre 2007
    Messages : 278
    Par défaut
    ok :'(

    je vais faire quelquechose dans ce genre.

    merci

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Un objet null est juste un pointeur vers \0. Il est unique et ne peut pas changer. Donc un objet null n'a pas de type.

    Si ce que tu cherches à savoir, c'est ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public void test(Object obj) {
      System.out.println( /* type déclaré de o bj*/ );
    }
     
    public void testPrincipal() {
      String s = null;
      test(s);
      Object o = null;
      test(o);
      Date d = null;
      test(d);
      Integer i = null;
      test(i);
    }
    Ce n'est tout simplement pas possible comme ça.

    Essaie peut-être ceci alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public <T> void test(T obj, Class<T> type) {
      System.out.println( obj == null ? type : obj.getClass() );
    }
     
    public void testPrincipal() {
      String s = null;
      test(s, String.class);
      Object o = null;
      test(o, Object.class);
      Date d = null;
      test(d, Date.class);
      Integer i = null;
      test(i, Integer.class);
    }

Discussions similaires

  1. [C++] recuperer la classe d'un objet
    Par erwan.bodere dans le forum C++
    Réponses: 2
    Dernier message: 30/11/2005, 10h14
  2. [Strategie]Classes de mapping & Objets métier
    Par yanis97 dans le forum JDBC
    Réponses: 19
    Dernier message: 16/05/2005, 09h57
  3. [Language]Type d'un objet null
    Par Calambo dans le forum Langage
    Réponses: 8
    Dernier message: 26/04/2005, 10h06
  4. Formulaire - lien JS - objet Null ou pas objet...
    Par Romalafrite dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/10/2004, 14h08
  5. [Débutant]Déterminer la classe d'un objet
    Par Wisefool dans le forum Langage
    Réponses: 4
    Dernier message: 06/05/2004, 12h55

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