重複の可能性:
Java の使い方: 汎用配列の作成
T[]
Javaで型の配列を作成するには? Arrays.newInstance()
のオブジェクトがないので使用できませんClass<T>
。newInstance
どこかにジェネリックバージョンはありますか?
私のメソッドのプロトタイプは次のとおりです。
public <T> T[][] distribute(T ... balls) {
T[][] answer = ????
// filling answer with data
return answer;
}
アップデート
上記の例で申し訳ありませんが、からクラスを受講できますballs
。しかし、そのような変数がないとします。
public <T> T[][] distribute() {
T[][] answer = ????
// filling answer with data
return answer;
}
また
class<T> {
public T[][] distribute() {
T[][] answer = ????
// filling answer with data
return answer;
}
}
UPDATE2
次の例も機能しません。
public abstract class GenericArray<T> {
abstract public T create();
public T[] gen1() {
T[] ans = (T[]) new Object[3];
ans[0] = create();
ans[1] = create();
ans[2] = create();
return ans;
}
public Integer[] gen2() {
Integer[] ans = new Integer[3];
ans[0] = new Integer(0);
ans[1] = new Integer(0);
ans[2] = new Integer(0);
return ans;
}
public static void main(String[] args) {
GenericArray<Integer> a = new GenericArray<Integer>() {
@Override
public Integer create() {
return new Integer(0);
}
};
Integer[] b = a.gen2();
Integer[] c = a.gen1(); // this causes ClassCastException
System.out.println("done");
}
}