2017-07-13 1 views
-2

Je veux savoir s'il est correct de passer "this" en paramètre à une méthode implémentée à partir d'une interface.Passage aux méthodes implémentées à partir de l'interface

Je souhaite implémenter une classe A avec une méthode CreateOutput. J'ai défini une interface F avec une méthode de sortie et une classe B implémentant cette interface. Le constructeur de la classe A reçoit un objet de type F et le stocke dans une variable privée (l'objet est un istance de la classe B).

Pour produire la sortie, je dois passer à la méthode de sortie "this" pour permettre à la classe B d'accéder aux données à sortir.

Est-ce correct?

+3

Je suis confus. Pouvez-vous poster votre code au lieu de le décrire? – shmosel

+0

Veuillez poster votre code – karthik006

+0

On dirait que vous allez avoir une dépendance cyclique qu'il est préférable d'éviter. – tsolakp

Répondre

-1

C'est correct.

public class A { 
    private F f; 

    A(F f) { 
     this.f = f; 
    } 

    void CreateOutput() { 
     f.Output(this); 
    } 
} 

interface F { 
    void Output(Object obj); 
} 

public class B implements F { 
    @Override 
    public void Output(Object obj) { 
    } 
} 

et

A a = new A(new B()); 
a.CreateOutput();