我有一個通用接口,似乎無法將我的頭包圍在製作通配符捕獲幫助程序中,並且這使我瘋狂。使用通用接口進行Java通配符捕獲
我有一個接口:
public interface Foo<T extends Bar> {
boolean isA(T t);
T B();
}
和它的實現被實例化這樣:
private Foo<? extends Bar> foo = new FooImpl();
這兩個無法改變,顯然我不能直接訪問FooImpl()。讓我們說,使用FooImpl(),接口接受並返回FooBar,它擴展了Bar。
我的編譯問題出現在我的代碼使用時, '富' 本身:
if (foo.isA(foo.B())){ //whatever }
凡foo.B()返回一個類型FooBar的。
我知道這是一個通配符捕獲錯誤,並且需要一個助手,但我不知道如何設置一個。在'foo'被實例化的類中沒有任何方法,其中'foo'是一個參數,這是大多數幫助器似乎寫入的方式。 'foo'僅用於獲取FooBar對象,並測試FooBar對象。
任何幫助非常感謝,我希望我很清楚。謝謝!
你能張貼FooImpl的代碼。所以我們知道您創建的實例是什麼。 –