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

avec Java Discussion :

Comment connaitre le type des variables


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut Comment connaitre le type des variables
    Bonjour

    ma question est simple: Comment connaitre les types des variables?

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Réponse simple : en lisant le code source ?...

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Si ce sont des object:

    objet.getClass().getame();

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut
    au fait

    j'ai déclaré deux variable, une de type Int et l'autre de type Integer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     int i = 12;
            Integer g = new Integer(i);
    J'ai fait d'autres traitements, des affectations et des conversions avec intValue() sur ces deux variables. Je voudrai m'assurer à la fin le type de i et de g

    ya t'il une méthode qui me retourne le type?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut
    autre question dans la foulée SVP

    je voudrai savoir la différence exacte entre le type int et Integer. Je voudrai un exemple concrets car j'ai compris que le premier est un type simple et le seconde est un type objet

    mais comment se manifeste la différence dans les traitements?

    qu'est ce que l'autoboxing?

  6. #6
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    La méthode pour trouver la classe (et non le type) t'as été donnée par tchize_ (avec une légère faute d'orthographe).

    Je pense qu'il y a quelque chose quelque part que tu n'as pas compris. Il n'y a aucun besoin de vérifier le type, la classe, ou quoique ce soit de ce genre : le compilateur le fait pour toi, et java t'oblige à le déclarer à un moment ou a un autre.

    Tu peux faire toutes les transformations que tu veux sans crainte : le compilateur et la machine virtuelle te surveillent.

    Ainsi, le type de i et de g ne risquent absolument pas de changer pendant le processus : int et Integer ils sont, int et Integer ils resteront.

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    le type basique "int" n'hérite pas de objet, il n'as pas de constructeur, pas de propriétés, par de méthodes, il a juste une valeur.
    Integer est un objet, donc quand tu déclare Integer g, tu déclare que tu va stocker dans g un référence à un object. T'aura donc des méthodes et des propriétés dessus.

    L'auto(un)boxing, c'est la capacité qu'à le compilateur à

    remplacer "i" par "new Integer(i)" quand tu passe i (de type int) là ou la déclaration de méthode exige un Object ou un Integer. C'est aussi cette capacité qu'il à a remplacer l'appel "g" par "g.intValue()" à ou tu passe g (de type integer) alors qu'il faudrait un int.

    Dans l'absolu, le type de g et i ne change jamais, c'est juste le compilateur qui réécrit tes appels quand tu passe i ou g en arguments de méthode ou quand tu les utilises dans les calculs. Sans auto(un)boxing, il faudrait écrire ce code à la main, c'est pas bien dur mais c'est chiant et çà rend le code plus opaque.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut
    merci gifffftane et tchize_ pour vos réponses

    au fait c'est parce que j'ai fait pas mal de conversion avec intValue() et que je me perds à la fin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            int i = 12;
            String j = new String();
            j = j.valueOf(i);  // j est de type string ayant la valeur "12"  
            System.out.println(j.getClass().getName()); //java.lang.String
            System.out.println(j+5); //125
            System.out.println(i+5); //17
            int k = Integer.valueOf(j); //k=12 de type int
            System.out.println(k+6); //18
            int t = Integer.valueOf(j).intValue();
          //convertit j en integer ensuite en int avec intValue()
    je voulais savoir est ce que le intValue() est de trop ou non? Si on affecte une variable de type Integer à une variable de type int, que se passe t'il

  9. #9
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            int i = 12;
            String j = Integer.toString(i)  // j est de type string ayant la valeur "12"  
            System.out.println(j.getClass().getName()); //java.lang.String
            System.out.println(j+5); //125, soit la concaténation de j et "5"
            System.out.println(i+5); //17
            int k = Integer.valueOf(j); //parse j. k=12 de type int
            System.out.println(k+6); //18
            int t = Integer.valueOf(j).intValue(); //parse j en Integer et extrait sa valeur
            // autre option
            // int t = Integer.valueOf(j);   // utilisation de autounboxing pour convertir Integer en int

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut
    tchize_

    si j'ai bien compris, grace à l' autounboxing, dans la dernière ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int t = Integer.valueOf(j).intValue(); //parse j en Integer et extrait sa valeur
            // autre option
            // int t = Integer.valueOf(j);   // utilisation de autounboxing pour convertir Integer en int
    Je n'ai plus besoin du intValue() pour rendre j en "int"

  11. #11
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    voilà, avec l'autoboxing, int et Integer peuvent etre mélangés

Discussions similaires

  1. [Débutant] Comment connaitre le type d'encodage des fichiers textes ?
    Par saxrub dans le forum VB.NET
    Réponses: 1
    Dernier message: 30/03/2012, 11h26
  2. comment connaitre le type d'une variable java
    Par bard123 dans le forum Général Java
    Réponses: 4
    Dernier message: 16/09/2008, 15h51
  3. Comment connaitre le type d'un attribut dans une table?
    Par Abdou_9002 dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/03/2006, 10h07
  4. Comment connaitre les noms de variables
    Par gwendy dans le forum Langage
    Réponses: 2
    Dernier message: 28/02/2006, 11h51

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