2011-06-24 99 views
4

你是如何繼承這門課程的?下面的代碼被打破,但它顯示了我想要實現的。Java - 從接受泛型的類繼承?

綁定不匹配:類型T不是類型ActivityInstrumentationTestCase2

public class MyClass<T> extends ActivityInstrumentationTestCase2<T> { 
    public MyClass (Class<T> clazz) { 
      super(clazz); 
    } 
} 
+2

你爲什麼說它壞了?我認爲它會編譯並且看起來也是正確的。 –

+0

我得到以下編譯錯誤:綁定不匹配 – aryaxt

+0

@aryaxt:你可以添加你的完整的錯誤信息的問題? –

回答

5

什麼是ActivityInstrumentationTestCase2的類定義的有限參數的有效分別代替?

最有可能的,ActivityInstrumentationTestCase2被定義爲:

class ActivityInstrumentationTestCase2<T extends SomeObject> { 
... 
} 

在這種情況下,你的對象的參數需要保持其超類的參數範圍內。

例如:

public class MyObject<T extends SomeObject> extends ActivityInstrumentationTestCase2<T> { 
... 
} 

你也可以將參數窄。所以,如果MySomeObject擴展SomeObject你還可以說:

public class MyObject<T extends MySomeObject> extends ActivityInstrumentationTestCase2<T> { 
... 
} 

編輯補充: 我剛剛發現this。我假設你使用的是同一個,所以它需要定義爲:

public class MyObject<T extends android.app.Activity> extends ActivityInstrumentationTestCase2<T> { 
... 
} 
+0

謝謝,解決了這個問題MyClass extends ActivityInstrumentationTestCase2 aryaxt