Interval<Integer> interval1 = Intervals.open(3, 6);
此处3
是下限,6
是上限。
assertEquals(interval1.lowerBound(), 3);
编写测试后,有一个红色下划线说:
ambiguous method call.Both assertEquals(object, object) assertEquals(long, long)
答案 0 :(得分:8)
问题是您使用assertEquals
和Long
来调用int
,因此编译器无法判断您是否需要assertEquals(long, long)
(自动装箱Long
)或assertEquals(Object, Object)
(自动装箱int
)。
要解决这个问题,你需要自己处理拆箱或装箱,写下:
assertEquals(3L, interval1.lowerBound().longValue());
或者这个:
assertEquals(Long.valueOf(3L), interval1.lowerBound());
(顺便说一句,请注意我为你交换了两个参数的顺序。assertEquals
期望第一个参数是预期值,第二个参数是实际值。这不会影响断言本身,但它会影响断言失败时生成的异常消息。)