2015-06-10 84 views
1

我正在開發一個獨立的自包含組件,它需要特定於域的部分才能正常工作。這個想法的一部分是創建一個通用接口,該接口將解決接口實現在該組件另一部分(在我的例子中是B類)中的用法。包含通用接口實現實例的Java通用類

我寫了下面的例子爲通用接口

public interface A<T> { 
    public A f0(T t); 
    public T f1(); 
} 

API消費者將有創建這個接口的實現和它的實例傳遞給組件。然後,組件將創建下列B類的一個實例,其中將包含該接口的實現的輸入實例:

public class B<T extends A> { 
    private T t; 

    public X getTsSomething(){ 
     return t.f1(); 
    } 
} 

問:

我怎麼能強迫X是同一類型在界面A中輸入參數?是否有明顯的解決方案,還是僅僅是糟糕設計的結果?如果是這樣,那麼更好的方法是什麼?

回答

4

它看起來像你想要的是:

public class B<S,T extends A<S>> { 
    private T t; 

    public S getTsSomething(){ 
     return t.f1(); 
    } 
}