1

私はセットを持っています: Set<String> tmpSet = FastSet.newInstance();

この質問に従うと: Set を String[] に変換する方法は?

そして私は同じことをします: String[] strArrStrings = includeFeatureIds.toArray(new String[0]);

そして私はこの例外があります:

Exception: java.lang.IllegalArgumentException
Message: Error running script at location [component://order/webapp/ordermgr/WEB-INF/actions/entry/catalog/KeywordSearch.groovy]: java.lang.UnsupportedOperationException: Destination array too small
---- cause ---------------------------------------------------------------------
Exception: java.lang.UnsupportedOperationException
Message: Destination array too small
---- stack trace ---------------------------------------------------------------
java.lang.UnsupportedOperationException: Destination array too small
javolution.util.FastCollection.toArray(FastCollection.java:351)

だから今、私は次のようにコーディングする必要があります:

for (FastSet.Record r = tmpSet.head(), end = tmpSet.tail(); (r = r.getNext()) != end;) {
         // copy one by one element to String[]  
     }

私の質問: FastSet を String[] に変換する方法 (またはユーティリティ) はありますか?

ありがとう:-)

以下も参照してください。

4

1 に答える 1

2

FastCollection#toArray(T[])を参照してください

標準の Collection とは異なり、このメソッドは配列のサイズを変更しようとしません。

そのため、配列を適切なサイズにする必要があります。使用する

includeFeatureIds.toArray(new String[includeFeatureIds.size()])

それ以外の

includeFeatureIds.toArray(new String[0])
于 2013-10-07T03:23:17.337 に答える