2

こんにちは、JDK > 1.5 で空の配列定数にアクセスするための標準的な場所があります。

String Collection (ArrayList など) から String Array への変換を行う場合、独自の Constants クラスで定義されている独自のものを使用していることに気付きます。

public static final String[] EMPTY_STRING_ARRAY = new String[0];

そして、私のクライアントコードでは次のようになります:

String[] retVal = myStringList.toArray(Constants.EMPTY_STRING_ARRAY);
return retVal;

これが「慣用的な」方法なのか、それとも何かが欠けているのか疑問に思っていましたが、私が行った簡単な検索から、この種のことが多くの人々のコードで一般的であるという印象を受けました。

アイデア、回答、コメント(文字列配列を実際に使用すべきではないことを除けば)は大歓迎です。

乾杯サイモン

4

2 に答える 2

2

次のコードの改善をお勧めします。

String[] retval = myStringList.toArray(new String[myStringList.size()]);

このように、toArray メソッドは、バックグラウンドで新しい配列を作成するのではなく、提供された適切なサイズの配列をコンテナーとして使用します。ArrayList javadoc から:

リストが指定された配列に収まる場合は、そこに返されます。それ以外の場合は、指定された配列の実行時の型とこのリストのサイズで新しい配列が割り当てられます。

于 2010-03-22T15:15:32.077 に答える
1

JDK のどこにもそのような配列定義はありません。JDKでそれを行う標準的な方法は、リストする方法または

String ret[] = new String[myStringList.size()];
myStringList.toArray(ret);
return ret;
于 2010-03-22T15:14:50.657 に答える