我試圖從我的主要得富():無法瞭解java通配符
<T extends Main> T foo()
{
return this; // "this" it is a instance of Main
}
而且使用它
Main m = new Main();
Main m2 = m.foo();
而且我得到了一個錯誤:「不兼容類型所需ŧ ,在方法foo()中找到Main「。
我知道我可以用這個:
<T extends Main> T foo2(T a) {
return a;
}
並使用它:
Main m = new Main();
Main m3 = m.foo2(m);
,它工作正常。但我不明白,爲什麼我不能使用第一種方法?因爲this
絕對是Main的實例擴展。
謝謝你的回答,但我想了解Java協方差。 – Alexmelyon 2014-10-08 12:52:53