有三个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