Dim*_*ims 4 java arrays generics instantiation
可能重复:
Java如何:创建通用阵列
如何T[]在Java中创建类型数组?我无法使用,Arrays.newInstance()因为我没有任何对象Class<T>.是否有newInstance某个地方的通用版本?
我的方法原型如下:
public <T> T[][] distribute(T ... balls) {
T[][] answer = ????
// filling answer with data
return answer;
}
Run Code Online (Sandbox Code Playgroud)
UPDATE
对不起上面的例子,我可以上课balls.但是假设我没有这样的变量.
public <T> T[][] distribute() {
T[][] answer = ????
// filling answer with data
return answer;
}
Run Code Online (Sandbox Code Playgroud)
要么
class<T> {
public T[][] distribute() {
T[][] answer = ????
// filling answer with data
return answer;
}
}
Run Code Online (Sandbox Code Playgroud)
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");
}
}
Run Code Online (Sandbox Code Playgroud)