具体的なユースケースについて教えてください。 I 推測あなたは範囲のコレクションを持っており、範囲が重複する場合はIAEをスローするcopyOf
メソッドを使用してImmutableRangeSet
を作成しようとしています。この場合
java.lang.IllegalArgumentException:
Overlapping ranges not permitted but found [0..2] overlapping [1..4]
で失敗した
@Test
public void shouldHandleOverlappingRanges()
{
//given
ImmutableList<Range<Integer>> ranges = ImmutableList.of(
Range.closed(0, 2),
Range.closed(1, 4),
Range.closed(9, 10)
);
//when
ImmutableRangeSet<Integer> rangeSet = ImmutableRangeSet.copyOf(ranges);
//then
assertThat(rangeSet.asSet(DiscreteDomain.integers()))
.containsOnly(0, 1, 2, 3, 4, 9, 10);
}
あなたの代わりにcopyOf
のunionOf
を使用する必要があり、それが渡したい::さんは、このテストケースを見てみましょう
//when
ImmutableRangeSet<Integer> rangeSet = ImmutableRangeSet.unionOf(ranges);
パーフェクト! 'unionOf'はまさに私が探していたものです。ありがとうございました! – user12341234