(在Java中工作) 我在整個類通用輸入一個抽象類:傳承 - 轉換成特定類型的
public abstract class ConnectionProcessor<T>
{
public void process()
{
for (List<T> resultsPage : connection)
{
processPage(resultsPage);
}
}
protected abstract void processPage(List<T> resultsPage);
}
我曾經說過,擴展另一個類抽象類,具有以下聲明:
public class AlbumProcessor<Album> extends ConnectionProcessor
{
@Override
protected void processPage(List resultsPage)
{
//Do stuff here specific to Album
}
}
這個宣言工作正常,但在processPage
我想做Album
特異性的事情,我會盡量避免鑄造時,我並不需要使用它。我寧願這是方法聲明:
protected void processPage(List<Album> resultsPage)
但是,這並不符合從ConnectionProcessor
覆蓋processPage
的要求。爲什麼是這樣?我怎樣才能獲得理想的行爲?我會認爲在AlbumProcessor
我可以隨時插入<Album>
ConnectionProcessor
有<T>
,但事實並非如此。
感謝所有4,我認爲你回答了我的「爲什麼是這個」問題的最好部分 – Indigenuity
@Indigenuity:不客氣。 –