2011-10-30 40 views
1

我有一個接口,它是通用的:如何使用一個接口作爲參數,當我嘗試使用反射在java中

public interface DataTable <T> { 

} 

而且我有一個工廠類返回一個實現DataTable<T>

我的類的實例
public class DataTableFactory<T> { 

    public DataTable<T> getInstance() { 
      return dataTableImpl(); 
    } 
} 

並命名爲具有方法public void setDataTable(DataTable <T> dataTable)

現在我只想通過使用Java反射調用此方法列表中的其他類:

Helper helper = new Helper(operationsFile); 
Class c = null; 
c = Class.forName(helper.getClassName("list")); 
Object t = c.newInstance(); 

Method methodSetDataTable = c.getDeclaredMethod("setDataTable", paramTypes); 

在這個例子中,我找不到如何獲得paramTypes

回答

3

沒有看到setDataTable的方法聲明,我預計參數類型將只是DataTable.class

+1

事實上,類型擦除可以確保參數類型不能更具體。 – Barend

相關問題