26

なぜnew String[0]内部に引数が必要なのtoArrayですか?

saved = getSharedPreferences("searches", MODE_PRIVATE);
String[] mystring = saved.getAll().keySet().toArray(new String[0]);
4

3 に答える 3

36

あなたが戻ってくるようにString[]。引数のないものは、 を返しますObject[]

このメソッドには 2 つのバージョンがあります。

配列を渡すString[]ことで、ジェネリック バージョンを使用しています。


配列を渡すより良い方法は、メソッドで新しい配列を作成する必要がないように、サイズ 0 ではなくString[]のサイズで初期化することです。Set

Set<String> set = saved.getAll().keySet();
String[] mystring = set.toArray(new String[set.size()]);
于 2013-08-08T21:27:09.280 に答える
5

戻り値の型を提供し、コンパイル時のあいまいさを防ぐためです。

そのメソッド呼び出しの署名は次のとおりです。<T> T[] toArray(T[] a)

一方、空のパラメーター one はObject[] toArray()

于 2013-08-08T21:28:54.247 に答える