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 とキャストを使用する必要があります

Integer、Float などを使用する必要があるプリミティブも使用できません。

于 2012-09-07T19:01:14.010 に答える
0

java.lang.reflect.Array.newInstanceはまさに必要なものです。

のオブジェクトのみが必要Class<T>ですが、クラスのコンストラクターで取得できます。

于 2012-09-07T19:05:16.657 に答える