1

可能重复:
Java 如何:创建通用数组

我想创造这样的东西:

public class MyClass<T> {
    private int row;
    private int column;
    private T[][] result;

    public T[][] generation(int size, T[] values) {
        result = new T[values.length][size];

        generator(0, 0);

        return result;
    }
}

但是我遇到了“通用数组创建”错误,我该如何解决?:(

4

3 回答 3

5

如果你能得到Tie的类型Class<T>,你可以使用Array.newInstance如下......

public T[][] generation(int size, T[] values) {
  result = (T[][]) Array.newInstance(values.getClass().getComponentType(),
      values.length, size);
  generator(0, 0);
  return result;
}
于 2012-09-07T19:07:03.770 回答
1

new T 是不可能的,你必须在返回前或返回后使用 Object 和 cast

基元也是不可能的,你必须使用 Integer、Float 等。

于 2012-09-07T19:01:14.010 回答
0

java.lang.reflect.Array.newInstance正是您所需要的。

你只需要一个对象,Class<T>但你可以在你的类的构造函数中取一个。

于 2012-09-07T19:05:16.657 回答