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 :

Comprendre Integer/int


Sujet :

avec Java

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 134
    Points : 66
    Points
    66
    Par défaut Comprendre Integer/int
    Bonjour,
    j'ai fait ce test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Integer i =42;
    		String s = (i<40)?"life":(i>50)?"universe":"everything";
    		System.out.println(s);

    On a Integer i 42 et une valeur 40 et 50 qui sont des integer..
    Donc comment on transforme un Integer en int pour le besoin de la condition?


    merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Points : 1 212
    Points
    1 212
    Par défaut
    Citation Envoyé par prugne Voir le message
    Donc comment on transforme un Integer en int pour le besoin de la condition?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monInteger.intValue();
    Un petit tour sur la doc t'aurait montré la réponse...

    Mako.

    EDIT : Au temps pour moi, j'avais mal compris la question.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par prugne Voir le message
    BDonc comment on transforme un Integer en int pour le besoin de la condition?
    Si tu te demandes comment ça se fait que le code compile et marche tout seul tel que,
    c'est ce qu'on appelle l'auto-outbox.

    Un int, quand on le met dans un Integer, c'est comme le mettre dans une sorte de "boîte" qui en fait un objet. On peut le mettre dans cette boîte et l'en sortir.

    - L'auto-inbox, c'est quand le compilateur met directement dans la boîte : conversion implicite int vers Integer

    - L'auto-outbox, c'est quand le compilateur sort automatiquement de la boîte : conversion implicite Integer vers int.
    C'est ce qui se passe ici.

    Ça marche avec tous les types de base et leurs boîtes :
    bool <-> Boolean
    byte <-> Byte
    short <-> Short
    int <-> Integer
    long <-> Long
    char <-> Character
    float <-> Float
    double <-> Double
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    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
    Salut,


    Pour compléter la réponse de thelvin :

    L'unboxing se fait par les méthode xxxValue() de la classe Wrapper où xxx correspond au nom du type primitif.

    Donc on a l'équivalence suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Integer integer = ...
     
    int i = integer;
    // équivalent à
    int i = integer.intValue();


    Le boxing quand à lui se fait via les méthodes static valueOf(x)x est le type primitif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int i = 42;
     
    Integer integer = 42;
    // équivalent à
    Integer integer = Integer.valueOf(42);
    En sachant que ces méthodes valueOf() utilisent un cache pour éviter de créer trop d'objet...



    a++

  5. #5
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 134
    Points : 66
    Points
    66
    Par défaut okok
    je vous remercie beaucoup de vos explications - je vais aussi regarder la documentation sur l'autoboxing.

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

Discussions similaires

  1. safearray et integer/int
    Par Rniamo dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 23/03/2009, 16h33
  2. cast Integer / int
    Par zaineb.z dans le forum Langage
    Réponses: 8
    Dernier message: 18/07/2007, 15h28
  3. Type mismatch: cannot convert from Integer to int
    Par littleb dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 16/10/2006, 22h35
  4. Difference Classe Integer et Int
    Par bonjour69 dans le forum Langage
    Réponses: 4
    Dernier message: 06/09/2006, 13h56
  5. Réponses: 9
    Dernier message: 06/07/2005, 14h20

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