我想在番石榴创建一个具有单个条目element
的(不可变)Multiset,出现的次数为occurrences
,两者在编译时都不知道。在番石榴,如何用单个元素创建多重集并发生n
我想出的是这样的:
ImmutableMultiset.<X>builder().addCopies(element, occurrences).build()
我想我一直在寻找这样的方法:
public static ImmutableMultiset<X> ImmutableMultiset.nOccurrencesOf(
X element, int occurrences){}
或:
public static ImmutableMultiset<X> Multisets.singletonMultiset(
X element, int occurrences){}
有我忽略了哪些方法可以缩短上述代码?
你发现了什么错?当一个简单的解决方案已经存在时,番石榴不会倾向于为每个可能的用例提供不同的签名。这似乎是使用构建器的情况。 –
@JohnB在ImmutableMultiset中有很多不同的重载方法,我觉得很奇怪,这是一个缺失 –
我认为,因为他们把它放在构建器中,他们没有看到需要直接放在类中。请注意,类中唯一的'add'方法就是为了满足接口并引发异常。 –