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 :

problème avec la généricité


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Points : 27
    Points
    27
    Par défaut problème avec la généricité
    Bonjour,

    j'ai un ensemble de fonctions qui reçoivent en entrée un int[],un double[]....etc

    Le problème est le suivant j'ai une fonction qui retourne un tab de type Object[], mais j'arrive pas a faire la transformation Object[]--> double[]
    ou Object[]--> byte[].......... et ainsi pouvoir le passer en argument dans une des fonctions.

    quelqu'un peut m'aider?

    merci

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Il n'est pas possible de caster un tableau de type de base en tableau d'objet, et vice-versa.
    Je te conseille fortement de revoir ta conception

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    si on peut car avec org.apache.commons.lang.ArrayUtils.toObject() tu peut
    passer d'un tableau de type de base en Object, et tu peut aussi passer par exemple
    de Double[] a un double[] grâce a toPrimitive().
    Mais pour revoir la conception c pas possible parce que je travaille sur du code existant.

  4. #4
    Membre averti Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281
    Points : 379
    Points
    379
    Par défaut
    Bonjour,

    si cette librairie te le permets je ne vois pas le problème?

    ou alors il va nous falloir du code

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    oui t'as raison y'a pas de problème c simple et moi je me suis pris la tête pour rien

    si t'as tab de type Object[] tu le transtype en Double[] avec (Double[]) tab

    puis tu utilise la librairie pour fair un toPrimitive(tab), et t'a un type double[].

    merci

  6. #6
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par filescan Voir le message
    si on peut car avec org.apache.commons.lang.ArrayUtils.toObject() tu peut
    passer d'un tableau de type de base en Object, et tu peut aussi passer par exemple
    de Double[] a un double[] grâce a toPrimitive().
    Mais pour revoir la conception c pas possible parce que je travaille sur du code existant.
    Donc non, on ne peut pas caster. Il faut passer par une boucle qui va recréer entièrement le tableau

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    en effet ca marche pas ca déclenche une exception!
    mais dans ce cas y'a pas une librairie pour passer de Double[] a double[] ....
    parce que je veut pas faire une fonction avec une boucle pour chaque type.

  8. #8
    Membre averti Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281
    Points : 379
    Points
    379
    Par défaut
    c'est la librairie qui s'en occupe.

    Un cast s'est "bêtement" un signal au compilateur, là ta librairie parcours les tableaux pour les convertir

    si ca généère des exceptions, try..catch

Discussions similaires

  1. [débutant] un problème avec la généricité
    Par julien.63 dans le forum Langage
    Réponses: 12
    Dernier message: 19/01/2008, 22h25
  2. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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