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 :

Java généricité sans Object


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Par défaut Java généricité sans Object
    Bonjour,

    J'ai pas encore compris la généricité en java.
    Mon problème est le suivant, j'ai une méthode java qui reçoit en entrée soit un double[ ] ou un int[ ] ....etc..

    et j'arrive pas a écrire une tel fonction sans passé par Double[ ] ou Integer[ ] qui descendent d'Object.comment dois je faire?


    merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    pourquoi ne pas passer plutot par un generics style ArrayList<T> ?
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut,

    Déjà généricité et tableaux en java ne font pas, pour moi, bon ménage.
    Sinon Toutes ces classes (Double, Integer, etc...) héritent de Number.
    Regarde de ce côté là

    Tschau

  4. #4
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Par défaut
    Merci,

    Pour le ArrayList ca le fait pas car je travaille sur du code existant donc ca m'obligeras de faire trop de modif......

    Et pour ta piste George7 ca marche pas. en faite quand j'écris une méthode
    du genre methode(Number[ ] data) puis je l'appelle avec data de type int[ ] j'ai le message suivant : the methode is not applicable for the argument int[ ].
    donc j'ai vu sur internet que c'est une classe qui permet de faire des conversion vers des type de base mais pour les tableaux ???

  5. #5
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252

  6. #6
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Si tu veux pas t'embarquer la lib, voici le code de la méthode statique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
     
    /**
         * An empty immutable <code>Integer</code> array.
         */
        public static final Integer[] EMPTY_INTEGER_OBJECT_ARRAY = new Integer[0];
     
     /**
         * <p>Converts an array of primitive ints to objects.</p>
         *
         * <p>This method returns <code>null</code> for a <code>null</code> input array.</p>
         * 
         * @param array  an <code>int</code> array
         * @return an <code>Integer</code> array, <code>null</code> if null array input
         */
        public static Integer[] toObject(int[] array) {
            if (array == null) {
                return null;
            } else if (array.length == 0) {
                return EMPTY_INTEGER_OBJECT_ARRAY;
            }
            final Integer[] result = new Integer[array.length];
            for (int i = 0; i < array.length; i++) {
                result[i] = new Integer(array[i]);
            }
            return result;
        }

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par filescan Voir le message
    Merci,

    Pour le ArrayList ca le fait pas car je travaille sur du code existant donc ca m'obligeras de faire trop de modif......

    Et pour ta piste George7 ca marche pas. en faite quand j'écris une méthode
    du genre methode(Number[ ] data) puis je l'appelle avec data de type int[ ] j'ai le message suivant : the methode is not applicable for the argument int[ ].
    donc j'ai vu sur internet que c'est une classe qui permet de faire des conversion vers des type de base mais pour les tableaux ???
    Normal int est in type primitif, pas une classe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	public static void main(String[] args) {
     
    		test(new Integer[0]);
    		test(new Double[0]);
     
    	}
     
    	public static void test(Number[] array){
    		System.out.println(array.getClass());
    	}
    donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    class [Ljava.lang.Integer;
    class [Ljava.lang.Double;

  8. #8
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Par défaut
    merci, a tous c bon ça marche.

    En faite ta solution Tommy31 marche bien ça m'évite de taper presque la même
    fonction n fois.

    ce que j'ai fait c que j'ai gardé methode(Number[ ] data) et à chaque appelle
    de la fonction on utilise org.apache.commons.lang.ArrayUtils.toObject() ou sinon la méthode que t'as écrite.

    merci.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/07/2008, 18h38
  2. [2.2.2][Java] Rapports sans fichiers .rptdesign
    Par Stephane73 dans le forum BIRT
    Réponses: 3
    Dernier message: 24/06/2008, 19h03
  3. 2 programme java distincts, 1 object commun!
    Par MC wacko dans le forum Langage
    Réponses: 14
    Dernier message: 16/10/2007, 16h35
  4. JAVA - Passer des Objects à des méthodes
    Par canou94 dans le forum CORBA
    Réponses: 2
    Dernier message: 15/11/2005, 22h39

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