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

Langage Java Discussion :

[débutant] un problème avec la généricité


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut [débutant] un problème avec la généricité
    Bonjour,
    je suis en train de regarder comment fonctionne la généricité.
    J'ai un souci car j'ai une erreur de compilation.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.Error: Unresolved compilation problem: 	The method setContent(T) in the type Panier<T> is not applicable for the arguments (Orange)
    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
    package org.cnam.fruit;
     
    public class Panier<T> {
     
    	protected T content = null;
     
    	public void setContent(T o){
    		content = o;
    	}
     
    	public T getContent(){
    		return content;
    	}
     
    	public boolean isEmpty(){
    		return content == null;
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class TestFruit<T> extends TestCase {
     
    	public void test1(){
    		Panier<T> panier = new Panier<T>();
    		Orange orange = new Orange();
    		panier.setContent(orange); // ici ca coince !!! faut-il caster ??
    	}
    }
    Si je fais un cast, ca fonctionne mais je croyais que la généricité c'était pour réduire les casts (entre autre)?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class TestFruit extends TestCase {
     
    	public void test1(){
    		Panier<Orange> panier = new Panier<Orange>();
    		Orange orange = new Orange();
    		panier.setContent(orange); // ici ca coince !!! faut-il caster ??
    	}
    }

  3. #3
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    ok merci pour ta réponse, ca marche,
    mais en fait le truc c'est que je dois pouvoir mettre n'importe quoi dans mon panier ! Donc je précise Orange alors je suis coincé.

  4. #4
    Nouveau candidat au Club
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 2
    Par défaut
    Citation Envoyé par julien.63 Voir le message
    Bonjour,
    je suis en train de regarder comment fonctionne la généricité.
    J'ai un souci car j'ai une erreur de compilation.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.Error: Unresolved compilation problem: 	The method setContent(T) in the type Panier<T> is not applicable for the arguments (Orange)
    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
    package org.cnam.fruit;
     
    public class Panier<T> {
     
    	protected T content = null;
     
    	public void setContent(T o){
    		content = o;
    	}
     
    	public T getContent(){
    		return content;
    	}
     
    	public boolean isEmpty(){
    		return content == null;
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class TestFruit<T> extends TestCase {
     
    	public void test1(){
    		Panier<T> panier = new Panier<T>();
    		Orange orange = new Orange();
    		panier.setContent(orange); // ici ca coince !!! faut-il caster ??
    	}
    }
    Si je fais un cast, ca fonctionne mais je croyais que la généricité c'était pour réduire les casts (entre autre)?

  5. #5
    Nouveau candidat au Club
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 2
    Par défaut
    salut julien si t'as un problem de compilation tu dois avoire la jvm (java vertuelle machine) et je croi que sa ira bien....

  6. #6
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    merci pour ta réponse, mais j'ai déjà la jvm !
    je pense que ce n'est pas le probléme.
    je pense que c'est que niveau de mon code.

  7. #7
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    bon du coup j'ai fait ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	public void test2(){
    		Panier<Object> panier = new Panier<Object>();
    		Orange orange = new Orange();
    		panier.setContent(orange);
    	}
    qu'en pensez-vous ?

  8. #8
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    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 690
    Par défaut
    Si tu veux mettre absolument n'importequoi dans ton panier c'est l'idée.

    Tu peux même ne pas mettre de <Object> du tout, c'est l'ancienne notation(avant java 1.5) qui ne gérait pas la généricité et donc on ne pouvait travailler qu'avec des Object. ceci dit je pense que <Object> est plus clair.

  9. #9
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    ok, merci pour ta réponse

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/05/2007, 13h11
  2. [débutant][servlet]Problème avec Servlet login
    Par stago dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 10/05/2005, 00h05
  3. [Débutant(e)] Problème avec JaxB !
    Par garulfo2 dans le forum Persistance des données
    Réponses: 6
    Dernier message: 08/02/2005, 09h28
  4. [Débutant][Phppgadmin] problème avec les types
    Par PoY dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 19/08/2004, 17h06
  5. Réponses: 5
    Dernier message: 19/08/2004, 11h11

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