当列表的大小小于Page Offset时,如何使用subList将对象列表转换为Page?

时间:2019-02-28 17:22:41

标签: java spring spring-boot

这是简化代码

public Page<TestResource> getTestData(TestData testData, Pageable pageRequest) {

List<TestResource> results = getSomething(testData);
        int start = (int) pageRequest.getOffset();
        int end = (start + pageRequest.getPageSize()) > results.size() ? results.size()
        : (start + pageRequest.getPageSize());
        return new PageImpl<DemographicsAuditsResource>(results.subList(start, end), pageRequest, results.size());

当结果中的记录数小于1时,并且如果我的页面偏移大于1则说6,则得到java.lang.IllegalArgumentException:fromIndex(6)> toIndex(1),因此线

results.subList(start, end)

因为结束小于开始。 当结果集较少时,如何生成子列表?

1 个答案:

答案 0 :(得分:1)

如果您要构建Web服务-start大于实际结果大小是40 Not FOUND条件。

执行以下检查并抛出异常并将其映射到404 否则返回一个空列表或null(接听电话)

if(start >= results){
   return new Arrayalist<TestResource>(); // or throw exception
}