1
我想實現一個包含模板類型數組的模板。有沒有辦法做類似於我在示例代碼中列出的內容?問題在於this.foo被分配了一個模板類型的新數組。Java模板:模板類型模板列表
class Classname<T>
{
T[] foo
Classname()
{
this.foo=new T[128];
}
}
我想實現一個包含模板類型數組的模板。有沒有辦法做類似於我在示例代碼中列出的內容?問題在於this.foo被分配了一個模板類型的新數組。Java模板:模板類型模板列表
class Classname<T>
{
T[] foo
Classname()
{
this.foo=new T[128];
}
}
這不起作用,並且here is a good answer解釋了原因。但是,實際上,Arraylist是一個很好的替代品,因爲它基本上將數組包裝在列表對象中。
編輯
This question是更貼近您的問題
這應該工作:
import java.lang.reflect.Array;
class Classname<T> {
T[] foo;
public Classname(Class<T> klass, int size) {
this.foo = (T[]) Array.newInstance(klass, size);
}
}
,那麼你應該能夠使用這樣的:
Classname<Double> c = new Classname<>(Double.class, 5);