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 :

essai de généricité


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 52
    Par défaut essai de généricité
    Bonjour à tous !
    Je cherche à comprendre la généricité en java. Je me suis donc fait un petit exercice : une fonction pour transformer un ArrayList en tableau en utilisant la généricité. Evidemment... ça marche pô :p

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class ArrayList extends java.util.ArrayList {
        public ArrayList() {
            super();
        }
        public <GenericClass> GenericClass[] convertToTable() {
            GenericClass[] result = new GenericClass[this.size()]; //Type parameter 'GenericClass' cannot be instanciated  directly
            ListIterator li = listIterator();
            while (li.hasNext()) {
                result[li.nextIndex()] = (GenericClass)li.next();
            }
            return result;
        }
    }
    Je fais mal quelque chose ou c'était juste pas possible ?

    Merci d'avance de vos réponses

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hello,

    ben, pour commencer, un tableau de type générique ça veut rien dire. C'est un peu compliqué à expliquer alors il vaut mieux me croire sur parole :
    - des tableaux de types défini (int, String, LocalDate, n'importe quoi qui utilise pas de type générique), ça fait sens
    - des ArrayList ou des HashSet qui contiennent un type générique, ça fait sens
    - des tableaux de type générique, ça n'a pas de sens.

    du coup, ben, pour ton essai d'exercice, il va falloir penser à autre chose.

    Par exemple, donner le premier élément de l'ArrayList.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 52
    Par défaut
    OK.
    Je ne comprends pas donc je vais faire précisément ce que tu m'as proposé, te croire sur parole ^^;

    Dans mon projet, j'ai une ArrayList de "Info" (un classe propre au projet), mais je me disais que ça pouvait être utile une fonction qui transforme un ArrayList en tableau. Je vais donc faire un truc propre au projet et repousser me velléités de généricité

    Merci de ta réponse !

  4. #4
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    pourquoi ? ArrayList.toArray ne te satisfait pas?

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 52
    Par défaut
    bah... le problème principal de ArrayList.toArray je trouve, c'est son nom. Par exemple, si ça avait été ArrayList.toTable ou un truc du genre, c'est sûr en lisant la javadoc il m'aurait sauté aux yeux. Mais là, bah... je l'ai pas remarqué :/ Je sors ?

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    (En même temps, un tableau en anglais, ça se dit array... Table c'est pour les trucs qu'on trouve dans un document, un tableau avec des lignes et des colonnes imprimées.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [architecture] pour de la généricité, vous feriez quoi ?
    Par Alec6 dans le forum Débats sur le développement - Le Best Of
    Réponses: 39
    Dernier message: 03/07/2006, 14h39
  2. [D7] généricité / portabilité d'une application
    Par Magnus dans le forum Bases de données
    Réponses: 7
    Dernier message: 01/09/2005, 08h39
  3. [Ada 95] Généricité de type/package
    Par kindool dans le forum Ada
    Réponses: 5
    Dernier message: 19/05/2005, 11h54
  4. Essai JBuilder 2005
    Par nprovost dans le forum JBuilder
    Réponses: 5
    Dernier message: 14/01/2005, 13h31
  5. Version d'essai
    Par skunkies dans le forum Access
    Réponses: 52
    Dernier message: 17/11/2004, 01h42

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