2011-08-02 79 views
0

我有一個抽象測試類,它有兩個類型參數。我需要在某個時候創建​​一個類型的實例,所以我定義了一個抽象方法來獲取所需的類。實現抽象方法返回類型<T1<T2>>

I doc = getInputDocumentClass().newInstance();

我如何能實現在具體子類的抽象方法Class<T1<T2>> getInputDocumentClass()

要返回類字面T1是不夠的:

@Override 
public Class<T1<T2>> getInputDocumentClass() { 
    return T1.class; 
} 

cannot convert from Class<T1> to Class<T1<T2>> 

有因鍵入擦除的參數化類文字。

那麼如何在這種情況下滿足編譯器呢?

+1

你是字面上指的是由Java的Object類還是一些通用的getSomeClass()方法定義的'getClass()'方法? 'getClass()'方法不能被覆蓋,而其他任何方法都可以通過強制轉換來解決。一些更多的代碼將有助於解釋你正在嘗試做什麼。 – ArtB

+0

哦,這是一個凌亂的案例。 Bleah。 –

+0

@ArtB不,只是我自己的方法。我將編輯問題以顯示我的意圖。 – prasopes

回答

1
@SuppressWarnings("unchecked") 
public Class<List<Integer>> getInputDocumentClass() { 
    return (Class)List.class; 
} 
相關問題