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

Développement Web en Java Discussion :

Setter et Getter dans une Interface


Sujet :

Développement Web en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 30
    Par défaut Setter et Getter dans une Interface
    Bonjour les amis !!

    Quelqu'un peut m'aider à comprendre s'il est obligatoire de rajouter des setters et des getters dans une interface pour faire l'injection de dépendance ?

    Je m'explique, supposons qu'une classe implémente une interface. Cette interface ne possède pas de getters et de setters mais la classe quant à elle possède des getters et des setters.

    Pour faire de l'injection de dépendance, Spring utilise l'interface et les setters de la classe. Comment cela est possible si les setters ne sont pas définis dans l'interface ?

    Merci d'avance pour vos questions

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Par défaut
    Salut,

    Je ne connais pas très bien Spring, mais j'imagines qu'il fait de la réflexion pour ce genre de choses, du coup peu importes les interfaces ou les classes mères, il cherche une propriété de nom xxx (=> getXxx() et setXxx()) dans l'instance du bean donc dans les méthodes du bean qui sont composées des méthodes de la classe filles + les méthodes de chaque classe mère.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 30
    Par défaut
    Je pense que cette réponse apporte une valeur ajoutée à ma curiosité. Merci pour cet éclairage. Cependant, est-ce que cela répond à la question que j'ai posée plus haut.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    l'injection se fait par introspection, pas par compilation, donc les interfaces implémentées, c'est pas ses affaire, il a concrètement une instance sur laquel on lui dit, "va mettre à X la propriété y", il va chercher par introspection une méthode setY(), et l'appeler, toujours par introspection. Avec ce genre de truc on peux même appeler des setters / getters qui sont privés!

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 30
    Par défaut
    Merci beaucoup pour vos réponses !

    Pour être plus claire dans ma réponse, supposons que j'ai une interface dont le nom est Linterface puis une classe LaClasse qui implémente cette interface

    Code de l'interface :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public interface Linterface {
     
    	String getQqChose (int entier);
     
    	void setQqChose(String valeur);
     
    }

    Code de la classe :


    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
    public class LaClasse implements Linterface{
    	@Autowired
    	String pourlinjection = null;
    
    	@Override
    	public String getQqChose(int entier) {
    		// TODO Auto-generated method stub
    		return null;
    	}
    
    	@Override
    	public void setQqChose(String valeur) {
    		// TODO Auto-generated method stub
    		
    	}
    
    	public String getPourlinjection() {
    		return pourlinjection;
    	}
    
    	public void setPourlinjection(String pourlinjection) {
    		this.pourlinjection = pourlinjection;
    	}
    
    	
    }
    Ma quesstion est de savoir s'il faut définir forcement le setter dans l'interface comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public interface Linterface {
    	
    	String getQqChose (int entier);
    	
    	void setQqChose(String valeur);
    	
    	public void setPourlinjection(String pourlinjection);
    
    }

    Merci d'avance pour vos réponses.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    comem déjà dit, a priori, Spring s'en fout. Et si t'as un doute, suffit de tester, ça prend quelques minutes

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

Discussions similaires

  1. Fond JPG dans une interface
    Par TiNoUcHe dans le forum 2D
    Réponses: 3
    Dernier message: 01/03/2006, 10h40
  2. Inclure une fenetre OGL dans une interface java
    Par Bart_lx dans le forum OpenGL
    Réponses: 2
    Dernier message: 06/02/2006, 18h14
  3. Changement de nom dans une interface
    Par memed dans le forum Oracle
    Réponses: 6
    Dernier message: 27/10/2005, 18h20
  4. [vb.net][html] afficher une page html dans une interface vb?
    Par graphicsxp dans le forum Windows Forms
    Réponses: 1
    Dernier message: 29/09/2005, 17h31
  5. Tableau dans une interface idl
    Par Polochon2001 dans le forum CORBA
    Réponses: 2
    Dernier message: 14/05/2004, 09h44

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