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

Collection et Stream Java Discussion :

Récupérer les objets d'un ArrayList


Sujet :

Collection et Stream Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 423
    Points : 133
    Points
    133
    Par défaut Récupérer les objets d'un ArrayList
    Bonjour,

    Je lis des bytes dans un fichier binaire, que je stocke dans un ArrayList.
    Quand je veux récupérer les valeurs des bytes lus, je veux caster chaque élément du ArrayList en int, mais j'ai une erreur 'found : java.lang.Object required : int'.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (int j=0; j<MonArrayList.size(); j++) {
    int i = (int)MonArrayList.get(j);
    }
    Je veux ensuite caster le int récupéré en char pour récupérer le code ascii correspondant au byte lu.

    Où est mon erreur ?

    Merci,

    Nico

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Ainsi que le message d'erreur l'indique : tu essaie de mettre un objet (Object) dans un type primitif (int). Alors forcément, ça ne marche pas

    Essaie plutôt de caster ton objet en Integer, s'il s'agit bien d'entiers : quand tu dis que tu "stockes des bytes dans un ArrayList" tu dois bien passer par un objet ?

  3. #3
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Les Listes ne peuvent contenir des types primitif(byte,char,short,int,long,float et double), il faut utiliser les classe adaptées à la place(Byte,Character,Short,Integer,Long,Float et Double). Donc il faudrait faire:
    //Pour ajouter un "int" dans une liste:
    list.add(new Integer(i));
    ...
    //Pour lire la liste
    int i = ((Integer)liste.get(j)).value();
    Cependant depuis java 1.5 pour contourner cette limitation, les type primitifs sont automatiquement convertis dans les objets correspondants. Il est également possible depuis Java 1.5 de préciser le type d'ojets que contient une Collection.
    Ici le type d'objets contenus dans ta liste n'étant spécifié, il sont considérés de la classe Object(comme en java < 1.5). Cette classe ne peut donc pas être convertie automatiquement en int.

    Il faut donc soit :
    - que tu déclare la liste comme contenant des Integer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<Integer> MonArrayList = new ArrayList<Integer>();
    - que tu précise que l'Object lu dans ton ArrayList est un Integer, qui lui pourra être converti automatiquement en int:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int i = (Integer)MonArrayList.get(j);
    Préfère la première solution si tu ne met que des entier dans cette liste.

Discussions similaires

  1. Récupérer les objets d'un formulaire dans un autre
    Par mimosa803 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/05/2009, 14h14
  2. Récupérer les objets de la JVM
    Par Bateau_Ivre dans le forum Langage
    Réponses: 5
    Dernier message: 25/02/2009, 20h56
  3. Identifier les objets d'un ArrayList
    Par jayjay78 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 25/08/2008, 11h26
  4. Réponses: 9
    Dernier message: 28/05/2008, 02h06
  5. [Débutant] Initialiser les propriétés de tous les objets d'une ArrayList
    Par Tententai dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 23/05/2006, 20h24

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