讓我們從一個代碼示例開始,理想情況下,我希望可以這樣做。Java泛型,在C <T extends MyClass <Z>>中,方法應返回Z
由於MyOtherClass是一個通用的
class MyOtherClass<Z>{}
我想獲得的MyOtherClass
class C<T extends MyOtherClass<Z>> {
Z myTypeOfReturnMethod() { return doStuff(); }
}
在Z不幸的是,據我知道,我不能指定,唯一有效的語法會be
class C<T extends MyOtherClass> {
???MyOtherClass.Z??? myTypeOfReturnMethod() { return doStuff(); }
}
這樣做的最好方法是什麼? C可能有兩種泛型,但它是重複性和容易出錯的。
我不明白爲什麼這會是多餘的。 – shmosel
@shmosel調整公式並增加了一些信息;) – Vogel612
仍然不認爲它是非常多餘的。我不會推薦'?擴展Z',除非明確指出'Z'是(僅)生產者,按[PECS](http://stackoverflow.com/questions/2723397/what-is-pecs-producer-extends-consumer-super)。 – shmosel