2011-09-22 86 views
0

我的目的是建立創建一個類與這種類型的繼承:Java泛型在繼承中的Android

public class BaseActivity<T> extends <T extends Activity> 

但當然,這種繼承語法不能編譯。任何替代建議,我可以隨意選擇一個選項卡或地圖活動作爲其覆蓋行爲是必要的其他活動類的基礎?

+0

你能詳細說明一下'T'的實際例子並顯示用法嗎? –

+0

當然:與上面相同的代碼行,其中T是MapActivity或T是TabActivity。 – jchristof

回答

1

你不能這樣做,但你可以這樣做:

public class BaseActivity<T extends Activity> extends Activity 

這不正是我想你的意思表達,但也許接近?

+0

因爲T需要在基地,所以他們說「近但沒有雪茄」。我錯過了C++語法類BaseActivity:public T – jchristof

+0

是的,這在Java中是不可能的。你必須爲所有你關心的類編寫「public class MyFooActivity extends FooActivity」。泛型只在Java中是編譯時,所以不能真正具有這個角色,這非常有運行時間影響。 –

+0

...雖然,我指出你所需的BaseActivity只能假設它是從BaseActivity繼承的,因爲T可能是BaseActivity ...所以「擴展BaseActivity」似乎幾乎是你想要的呢? –