2013-07-03 59 views
1

如何通過從函數參數中檢索T來定義Vector的類型? 例子:函數參數中的模板

public void addPlot(String plotName, int minX, int maxX, 
     int minY, int maxY, PlotStyle plotStyle, Class<? extends Number> type) 
{ 
    Vector<type.class> dataset = new Vector<type.class>(); 
} 

回答

2

首先,在Java中,它的 「仿製藥」,而不是 「模板」(一個C++的術語)。

接下來,使您的方法具有通用命名泛型類型參數並使用它。

// generic declaration after public, before void 
public <T extends Number> void addPlot(String plotName, int minX, int maxX, 
     int minY, int maxY, PlotStyle plotStyle, Class<T> type) 
{ 
    Vector<T> dataset = new Vector<T>(); 
} 

<T extends Number>是您的泛型類型參數聲明(有上限),而其他地方<T>顯示出來的,你使用它。