有三個Java 1.6接口繼承一個從另一個:如何在界面中使返回類型泛型?
interface First<T extends First<T>> {
T me();
}
interface Second<T extends Second<T>> extends First<T> {
}
interface Third<T extends Third<T>> extends Second<T> {
void foo();
}
現在我很期待這一個工作,但沒有:
// somewhere later
public void bar(Third t) {
t.me().foo();
}
編譯器說,t.me()
是Second
類型。我究竟做錯了什麼?
當我嘗試它時,編譯器似乎認爲t.me()是第一種類型! – 2011-04-17 12:32:47
@Tom更糟。你知道如何讓編譯器認爲't.me()'是'Third'類型嗎? – yegor256 2011-04-17 12:36:48
正如BeyoncéKnowles所說(稍微解釋一下),如果你想使用它,你應該在其上放置一個類型參數。 – 2011-04-17 12:40:59