4

現在、関数呼び出し (getFeatures()) から ImmutableSet が返されていますが、後で実行される残りのコードの構造により、これをリストに変更する方がはるかに簡単です。ランタイム例外を生成するキャストを試みました。また、それをリストに変換するための関数呼び出しを調べましたが、役に立ちませんでした。これを行う方法はありますか?私の最近の [失敗した] 試行を以下に示します。

ImmutableSet<FeatureWrapper> wrappersSet =  getFeatures();
List<FeatureWrapper> wrappers = (List<FeatureWrapper>) wrappersSet;

ImmutableList を提供する wrapperSet.asList() を見つけましたが、可変リストの方がはるかに好きです

4

3 に答える 3

10

Set<T>aを a にキャストすることはできませんList<T>。それらはまったく異なるオブジェクトです。コレクションから新しいリストを作成するこのコピーコンストラクタを使用するだけです。

List<FeatureWrapper> wrappers = new ArrayList<>(wrappersSet);
于 2015-06-10T15:57:40.773 に答える
5

ImmutableCollectionasList」機能があります...

ImmutableList<FeatureWrapper> wrappersSet = getFeatures().asList();

返されるタイプがImmutableList.

ただし、本当に変更可能なものが必要な場合はListVivin の答えが必要です。

于 2016-09-26T08:14:39.147 に答える