JAVA:ImmutableSet作为List

Gre*_*egH 3 java list immutable-collections

我目前从函数调用(getFeatures())返回一个ImmutableSet,并且由于我稍后要执行的其余代码的结构 - 将其更改为List会更容易.我试图将其转换为产生运行时异常.我也四处寻找函数调用将其转换为列表无济于事.有没有办法做到这一点?我最近的[失败]尝试如下所示:

ImmutableSet<FeatureWrapper> wrappersSet =  getFeatures();
List<FeatureWrapper> wrappers = (List<FeatureWrapper>) wrappersSet;
Run Code Online (Sandbox Code Playgroud)

我找到了wrapperSet.asList(),它会给我一个ImmutableList但是我更喜欢一个可变列表

Viv*_*ath 8

你不能Set<T>投入一个List<T>.它们是完全不同的对象.只需使用此复制构造函数,即从集合中创建新列表:

List<FeatureWrapper> wrappers = new ArrayList<>(wrappersSet);
Run Code Online (Sandbox Code Playgroud)


mon*_*dra 5

ImmutableCollection具有“ asList ”功能...

ImmutableList<FeatureWrapper> wrappersSet = getFeatures().asList();
Run Code Online (Sandbox Code Playgroud)

返回类型 an 的奖励积分ImmutableList

如果你真的想要一个可变的List,那么Vivin 的答案就是你想要的。