在我的实现中,我通过返回的elasticsearchtemplate#stream()从elasticsearch获取数据 CloseableIterator<>
.
我想通过以下方式来模拟这种方法:
List<MyClass> foo = new ArrayList<>(); // and then I add some elements
when(mockTemplate.stream(any(SearchQuery.class), eq(MyClass.class))
.thenReturn(foo.iterator());
但是 iterator()
退货 Iterator<MyClass>
哪一个不是 CloseableIterator<MyClass>
我不知道该怎么投,也不知道该怎么解决。
1条答案
按热度按时间ldioqlga1#
org.springframework.data.util.CloseableIterator.CloseableIterator
从Spring到Springjava.util.Iterator
jdk提供了足够接近的接口:的确如此CloseableIterator
有Iterator
作为父接口。也就是说你可以用
Iterator
通过CloseableIterator
但不是相反:你需要什么。当你不能返回
Iterator
在模拟记录中,您仍然可以转换Iterator
到CloseableIterator
. 这不是很难感谢方法委托,但它仍然需要少量的样板。例子: