2017-07-13 70 views
-2

實現的方法我想知道將「this」作爲參數傳遞給從接口實現的方法是否正確。將此傳遞給接口

我想用CreateOutput方法實現A類。 我用一個輸出方法和一個實現這個接口的B類定義了一個接口F. A類的構造函數接收一個F類型的對象並將其存儲在一個私有變量中(該對象是B類的一個)。

爲了產生輸出,我需要傳遞給Output方法「this」讓B類訪問要輸出的數據。

這是正確的嗎?

+3

我很困惑。你可以發佈你的代碼而不是描述它嗎? – shmosel

+0

請發表您的代碼 – karthik006

+0

看起來你會有周期性的依賴,這是最好避免的。 – tsolakp

回答

-1

這是正確的。

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) { 
    } 
} 

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