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 :

The return type is incompatible with..


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    lr
    lr est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 338
    Par défaut The return type is incompatible with..
    Salut,

    J'essaie de reprendre un projet sur lequel j'ai bossé l'été dernier mais j'ai des soucis.

    Le contexte :
    OS = Ubuntu 6.06 AMD64
    JVM = Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
    IDE = Eclipse 3.2.0 AMD64
    Mon projet est configuré pour être "1.4 compliant".

    J'ai une classe DefaultDAO qui a une méthode statique "instance()". J'ai plusieurs classes (ClientDAO, EmployeeDAO etc.) qui étendent la classe DefaultDAO et qui redéfinissent chacune la méthode instance() pour qu'elle retourne respectivement un objet ClientDAO ou un objet EmployeeDAO.

    Et j'ai cette erreur dans chacune des sous-classes :
    "The return type is incompatible with DefaultDAO.instance()".

    Je ne vois pas où est le problème ni comment corriger ça :S

    Merci pour votre aide
    Lilian

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Dans ce cas précis sans le code qui te lève l'Exception on ne pourra pas franchement t'aider.

  3. #3
    lr
    lr est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 338
    Par défaut
    Citation Envoyé par sinok
    Dans ce cas précis sans le code qui te lève l'Exception on ne pourra pas franchement t'aider.
    Merci pour ta réponse et désolé si mon message manquait d'informations.

    Voici donc une partie du code de DefaultDAO et une partie du code de WorkerDAO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class DefaultDAO
    {
    	private static DefaultDAO dao = new DefaultDAO();
     
    	protected DefaultDAO()
    	{
     
    	}
     
    	public static DefaultDAO instance()
    	{
    		return dao;
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class WorkersDAO extends DefaultDAO
    {
    	private static WorkersDAO dao = new WorkersDAO();
     
    	public static WorkersDAO instance()
    	{
    		return dao;
    	}

  4. #4
    lr
    lr est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 338
    Par défaut
    quelqu'un sait pourquoi j'obtiens cette erreur là où avant tout marchait très bien ?

    De plus, je ne comprend pas cette erreur, il me semble que si WorkerDAO étend DefaultDAO, sa méthode "instance" doit pouvoir retourner un objet WorkerDAO à la place d'un DefaultDAO, quelle incompatibilité y a-t-il ici ?

    Merci pour votre aide
    Lilian

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Citation Envoyé par lr
    De plus, je ne comprend pas cette erreur, il me semble que si WorkerDAO étend DefaultDAO, sa méthode "instance" doit pouvoir retourner un objet WorkerDAO à la place d'un DefaultDAO, quelle incompatibilité y a-t-il ici ?
    Elle peut retourner un objet WorkerDAO, mais à condition qu'elle continue de le déclarer en tant que DefaultDAO :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class WorkersDAO extends DefaultDAO {
        private static WorkersDAO dao = new WorkersDAO();
     
        public static DefaultDAO instance()  {
            return dao;
        }
    }
    Cette limitation a disparu avec Java 5.0 (toutefois j'ignorais que cela concernait également les méthode static) : Quelles sont les règles à respecter pour redéfinir/implémenter une méthode ?

    a++

  6. #6
    lr
    lr est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 338
    Par défaut
    Merci, mais dans ce cas, ça pose d'autres problèmes. Car dans mon code, lorsque je fais WorkersDAO.instance(), j'ai besoin de récupérer un objet WorkersDAO pour pouvoir utiliser ses méthodes spécifiques qui ne se trouvent pas dans DefaultDAO.

    Est-ce que la seule solution est de caster l'objet retourné par instance() ?

    C'est très bizzare car j'ai réalisé ce projet il y a deux ans, il était déjà 1.4 compliant et je n'avais jamais eu ce problème.

    Il faudrait peut-être que j'essaie de compiler sans eclipse ?

Discussions similaires

  1. is incompatible with parameter of type
    Par noals dans le forum Débuter
    Réponses: 4
    Dernier message: 02/10/2012, 16h34
  2. Type unit, type string, match with
    Par lioudow dans le forum Caml
    Réponses: 8
    Dernier message: 12/02/2007, 17h12
  3. Réponses: 1
    Dernier message: 11/05/2006, 22h05
  4. Réponses: 9
    Dernier message: 06/07/2005, 14h20
  5. [Débutant] The authentication type 5, java
    Par agougeon dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 07/05/2005, 14h01

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