我想在番石榴創建一個具有單個條目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'方法就是爲了滿足接口並引發異常。 –