Tableau dynamique

lolo5050 Messages postés 3 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 16 décembre 2005 - 15 déc. 2005 à 10:24
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 - 17 déc. 2005 à 19:42
Bonjour,

Je développe pour le plaisir une application Java. Je me suis mis très récemment à ce language.
Je dois réaliser dans cette application un tableau dynamaique de variable de type long.
J'ai utilisé pour cela la classe ArrayList. La manipulation du tableau se passe bien (ajout,...), cependant je récupère tous mes éléments en type objet et je ne peux pas les manipuler comme des long.

Par eexemple le code suivant me génère une erreur :

on suppose que le tableau est initialisé et que a est de type long

a=(long) tab.get(2);

J'ai une erreur du type : impossible d'affecter un objet à un long

Pouvez vous m'éclairer ?

Laurent

7 réponses

gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
15 déc. 2005 à 10:43
Pour info, ton erreur est du au fait qu'en Java, tout ce qui est contnu dans des ArrayList, Vctor et autres choses du même genre est objet.

A priori, tu utilises la version 1.5 du JDK puisqu'il y a auto-encapsulation (cad remplacement du long par un Objet de type Long)

Donc normalement ,

a = tab.get(2);

devrait fonctionner, puisque le JDK 1.5 propose aussi l'autodesencapsulation.

Et au pire, il reste la solution :

a = tab.get(2).longValue();

gmi19oj19
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
15 déc. 2005 à 10:47
Ou encore :

a = new Long(tab.get(2))

qui te créera un objet Long qui sera directement convertit en long.

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
lolo5050 Messages postés 3 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 16 décembre 2005
15 déc. 2005 à 11:16
OK, merci pour vos réponses. Je vais essayer tout ça dès aujourd'hui.

Je comprend que tout les éléments de ArrayList sont du type Object mais en mettant (long) comme dans :

a=(long) tab.get(2);

un transtypage devrait être effectué et je devrai récuperer un long , non ?
0
gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
15 déc. 2005 à 11:47
Non, on ne peut caseter un objet dans un type primitif et inversement.

gmi19oj19
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jcodeunpeu Messages postés 365 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 2 décembre 2006 2
15 déc. 2005 à 12:02
salut,
je crois que les solutions ne manquent pas à ce problème,
tab.add( lo + "");
Long.parseLong(tab.get(2) + "");
ou :
tab.add(new Long( lo ));
((Long) tab.get(2)).longValue();
un peu ce qu'on disait ....
A+
0
lolo5050 Messages postés 3 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 16 décembre 2005
16 déc. 2005 à 11:41
Bonjour

j'ai fait quelques essais

genere une erreur :
a = tab.get(2);
a = tab.get(2).longValue();
a = new Long(tab.get(2))

fonctionne :
a=Long.parseLong(tab.get(2) + "");
a= Long.parseLong(String.valueOf(dateur.get(2)));

J'ai utilisé la seconde méthode.
merci pour le coup de main.

Laurent

Une autre question qui n'a pas varaiment sa place sur ce post : Je voudrais tracer des graphes dans mon applications. existe t il des "package" qui font déjà ce genre de choses (j'ai pas envie réinventer la roue...) ? On m'a parlé de Jgraph ?
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
17 déc. 2005 à 19:42
arraylist<long> nomvar = new arraylist<long>();
normalement ca devrai marcher mais g pas pu tester g pas le jdk sous la main

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
Rejoignez-nous