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

Eclipse Java Discussion :

Type mismatch: cannot convert from Integer to int


Sujet :

Eclipse Java

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Type mismatch: cannot convert from Integer to int
    bonjour,

    j'ai le probléme Type mismatch: cannot convert from Integer to int lors de la compilation avec Eclipse et je n'ai pas ce probléme quand je lance la compilation directement en ligne de commande ..

    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class Essai {
      public static void main (String args[]) {
     
        String mot = "10";
        int nb = new Integer(mot); // ERREUR !!
        System.out.println("Voici le nombre : " + nb);
     
      }
    }
    merci d'avance ..

  2. #2
    Membre éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Tout simplement parce que le niveau de vérification sur la compilation d'eclipse est plus élevé qu'en ligne de commande, et c'est une bonne chose...

    Un int est un Integer sont 2 choses différents : int est le type primitif, Integer est une classe englobant un int...

    Il faut rester cohérent ! Pour faire ce que tu veux, tu as 2 solutions soit déclarer la variable en tant que Integer, soit récupérer la valeur int du Integer avec la méthode Integer.intValue...

    PS : on utilie plutot la méthode statique Integer.valueOf() plutot que new Integer()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Solution 1
    Integer nb = new Integer(mot);
    
    // Solution 2
    int nb = new Integer(mot).intValue();
    
    // Solution 3
    int nb = Integer.valueOf(mot).intValue();
    PS:

  3. #3
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Points : 139
    Points
    139
    Par défaut
    Es-tu sur que ta ligne de commande et ton eclipse utilise la meme version de Java? Tu dois surement compiler en ligne de commande avec java 1.5 et 1.4 pour eclipse.

  4. #4
    Membre éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Citation Envoyé par bourbaki2003
    Es-tu sur que ta ligne de commande et ton eclipse utilise la meme version de Java? Tu dois surement compiler en ligne de commande avec java 1.5 et 1.4 pour eclipse.
    Ca n'a rien à voir avec la question qu'il a posé... le compilateur ne lui crache pas d'erreur de version, juste que Integer et int ne sont pas la même chose...

  5. #5
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Points : 139
    Points
    139
    Par défaut
    Sauf qu'en 1.5, son code ne genere pas d'erreur de compilation, alors qu'en 1.4 oui. Donc si, ma reponse a un rapport avec sa question.

  6. #6
    Membre éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Oups, je suis désolé, je ne savais pas

    Bon, je retourne méditer le vieil adage : "Tourner ses doigts 7 fois dans sa bouche avant de poster"

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 101
    Points : 123
    Points
    123
    Par défaut
    dans eclipse, preferences/java/compiler/Errors\Warnings/Potential programming ...
    tu as des niveaux d'erreurs sur Boxing/Unboxing : Ignore/Warning ou Error

    tu dois être en error.

  8. #8
    Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut merci ..
    MarneusCalgarXP
    tous fonctionnent avec Solution2 ou 3
    "Le niveau de vérification sur la compilation d'eclipse est plus élevé qu'en ligne de commande" .. a quoi cela sert il ??

    bourbaki2003
    oui ma ligne de commande et eclipse utilise la meme version de Java, la 1.5

    smallet
    rien modifié, cela toujours été en Ignore ..

  9. #9
    Membre éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Citation Envoyé par littleb
    MarneusCalgarXP
    "Le niveau de vérification sur la compilation d'eclipse est plus élevé qu'en ligne de commande" .. a quoi cela sert il ??
    Ca sert justement à éviter que tu confondes les 2 types, et que tu si tu veux absolument passer de l'un à l'autre, soit tu désactives ce niveau d'avertissement (mais là, attention à ce que tu fais), soit tu utilises les fonctions pour passer d'un type à l'autre...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/03/2015, 10h57
  2. Réponses: 3
    Dernier message: 03/10/2012, 11h45
  3. Erreur "Cannot cast from Object to int"
    Par FatmaFafa dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 11/08/2012, 18h33
  4. Réponses: 20
    Dernier message: 23/01/2007, 15h34

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