Javaでジェネリックタイプのアレイを作成する方法として、Array.newInstanceスタティックメソッドを検討してください。 は、私は何をどのように見ることができないんだと、nullジェネリック型引数から一般的な配列を作成することです:私はJavaジェネリックアレイのヌルジェネリックタイプ
/**
* Creates and fills a generic array with the given item
*/
public static <T> T[] create(T item, int length)
{
T[] result = (T[]) Array.newInstance(item.getClass(), length);
for(int i = 0; i < length; i++)
result[i] = item;
return result;
}
上記の作品を呼び出すときに、例えばcreate( "abc"、10);私は、配列のすべての位置に "abc"という長さ10のString []を取得しています。 しかし、どのようにしてNULL文字列引数を返すと、長さ10の文字列配列を返すことができ、すべての位置にnullがありますか?
String nullStr = null;
String[] array = create(nullStr, 10); // boom! NullPointerException
おそらく(それがnullだと)、そのメンバーの1を使用せずに、「項目」のクラスを取得する方法はありますか?
私はちょうど新しい配列を得ることができることを知っていますString [] array = new String [10]、それはポイントではありません。
ありがとうございました
残っているタイプの情報のみが 'item'となっています(しかし、この情報はヌルなら自然ではありません:-)。これは、代わりに[Class](http://download.oracle.com/javase/6/docs/api/java/lang/Class.html)を使用するか、おそらく 'create(SomeDefault、10) '、例えば'create(" "、10)' FYI:C#(Javaではない)は、[reified types](http://gafter.blogspot.com/2006/11/reified-generics-for-java.html)を持ち、 'typeof(T)'をサポートしています。ああ、タイプ消去についても話しているreified型へのリンクを調べてください: –