Injection d'interface

omarou -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,

Voilà ce que je veux réaliser :

J'ai une classe A et une classe B ainsi qu'une interface I.

B implements I.

Dans la classe A j'ai déclarer un objet comme ceci :

private I i;

A ce stade tout est ordinaire.

Le problème c'est que je veux utiliser les services de l'objet i implémentées par la classe B sans utiliser aucun framework de gestion d'injection de dépendance Spring, EJB, ....

J'utilise Eclipse RCP et de code java bien sur.

Quelqu'un ait une idée !!??!!

2 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    "sans utiliser aucun framework de gestion d'injection de dépendance Spring, EJB, ...."

    Je ne vois pas du tout ce que tu voudrais faire avec ça !

    Si tu veux utiliser un objet qui implémente l'interface I, il suffit d'utiliser les méthodes définies par cette interface !
    0
  2. omarou
     
    Bonjour, Je vous remercie pour votre réponse.
    Je m'explique d'avantage :
    prenant le schéma suivant :

    public interface I
    {
    public void saluer();
    }

    public class B implements I
    {
    @Override
    public void saluer(){
    printf("dit : salut");
    }
    }

    public class A
    {
    private I itest; // Je ne veux pas faire itest = new B();

    public void main()
    {
    System.out.println(itest.saluer()); //J'attends ici le message : dit salut
    //Est ce qu'il y a moyen d'appeler la méthode saluer() de la classe B.
    //Injecter l'interface I à la classe B
    }
    }

    Voilà j'espère que j'ai éclairci un peu plus l'ambiguïté !!
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Pour faire ce que tu veux il faudrait que la méthode saluer() soit static, mais elle devrait alors être implémentée ce qui n'est pas possible avec une interface !
      0